Question

J'ai un code c # qui mappe des processus sur des adresses IP, j'essaie en principe d'écrire un logiciel qui va regarder un processus et me donner l'adresse IP afin que je puisse écrire un moniteur qui permette à mes amis trouver être dans les jeux.

Lors de l'exécution de mon application, il détecte qu'un processus de jeu a une connexion UDP mais je n'arrive pas à obtenir l'adresse IP.

J'ai exécuté un paquet de paquets et 78.111.229.123:32000 s'affiche sur le routeur / la passerelle, mais cela ne s'affiche pas dans mon application.

Avez-vous des idées pour me lancer?

Était-ce utile?

La solution

Comment configurez-vous le socket dans l'application de jeu? Pouvez-vous poster un exemple de votre code d'installation de socket?

Utilisez-vous l'adresse générique et le port lors de la création du socket? Je suppose que si votre application de jeu ne se lie pas explicitement à une adresse IP ou à un port spécifiques, cela pourrait être la source de votre problème.

Autre question: essayez-vous de détecter l'adresse IP locale, l'adresse IP distante ou les deux?

Si vous essayez de détecter l'adresse IP distante, cela risque d'être impossible à moins que l'application de jeu utilise ce qu'on appelle sockets UDP connectés . C'est ici que les appels d'applications clientes se connectent sur le socket UDP pour créer une association entre les sockets locaux et distants du système d'exploitation sous-jacent. Cela présente certains avantages et inconvénients énumérés dans le lien ci-dessus.

Modifier

Jetez un coup d'œil à cet article SO: PID du numéro de socket sous Windows?

Ceci confirme à peu près ce que je pensais - à moins que le jeu utilise des sockets UDP connectés, le seul moyen d'obtenir l'adresse distante consiste à renifler des paquets.

Démarrez le jeu et exécutez netstat -ap UDP - si vous constatez qu'aucune adresse distante n'est répertoriée, cela confirme le soupçon ci-dessus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top