GetExtendedUdpTable and Remote IP Address
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?
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