Pergunta

Eu tenho um pouco de código C # que é mapeamento de processos para endereços IP, eu estou basicamente tentando escrever algum software que irá olhar para um processo e me dar o endereço ip para que eu possa escrever um monitor que vai permitir que amigos para encontrar estar em jogos.

Ao executar o meu pedido que ele detecta que um processo de jogo tem uma conexão UDP, mas eu não consigo obter o endereço IP.

Já corri um packetsniffer e 78.111.229.123:32000 aparece no router / gateway, mas não está mostrando em meu aplicativo.

Todas as idéias para me levantar e correr?

Foi útil?

Solução

Como você está configurando o soquete na aplicação do jogo? Você pode postar um exemplo de seu código de configuração tomada?

Você está usando o endereço curinga e porta ao criar o socket? Eu estou supondo que se o seu aplicativo de jogo não se ligam a um determinado endereço IP e porta explicitamente que pode ser a fonte do problema.

Outra pergunta: você está tentando detectar o endereço IP local, endereço IP remoto ou ambos

?

Se você está tentando detectar o endereço IP remoto isso pode ser impossível a menos que a aplicação do jogo está usando o que é conhecido como sockets UDP ligadas . Este é o lugar onde as chamadas aplicativo cliente se conectar no soquete UDP para criar uma associação entre as tomadas locais e remotos no sistema operacional subjacente. Isso tem certas vantagens e desvantagens, conforme listado no link acima.

Editar

Dê uma olhada neste SO post:? PID do número de soquete no Windows

Este bonito muito confirma o que eu pensava -. A menos que o jogo é usar soquetes UDP conectados, então a única maneira que você vai ser capaz de obter o endereço remoto é via packet sniffing

Iniciar o jogo e correr netstat -ap UDP -. Se você ver que não existem quaisquer endereços remotos listados, então, que iria confirmar a suspeita acima

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top