2009-08-12 7 views

Répondre

2

Je pense que vous avez un certain nombre d'idées fausses sur le fonctionnement de TCP/IP. Tout d'abord, pas tous les ordinateurs ou processus dans le monde a une URL. Donc, demander "quelle est l'URL du demandeur" (comme vous l'avez fait dans la question précédente) est une question sans signification.

Il est légèrement plus significatif de demander le nom DNS de la machine à l'origine d'une demande. Pas toutes les machines sur Internet ont un nom DNS, mais beaucoup le font. Pour savoir quel est le nom DNS d'une machine, vous devez d'abord avoir son adresse IP, ce que vous avez si vous avez reçu une requête de la machine via TCP ou UDP (car cela inclura l'adresse IP du demandeur). Vous pouvez ensuite effectuer une recherche DNS inverse pour déterminer le nom DNS; si cela vous donne quelque chose, ou si le résultat est correct dépend de la façon dont le DNS inverse est géré pour le demandeur.

Selon this blog entry, vous pouvez utiliser IncomingMessageProperties, en examinant RemoteEndpointMessageProperty, pour connaître l'adresse IP distante.

+1

En réalité, vous n'avez peut-être pas encore l'adresse IP réelle du demandeur. Vous pourriez obtenir l'adresse d'un serveur proxy ou d'un périphérique NAT. –

+0

Bon point. Je n'y ai pas pensé! Je suppose que j'avais l'impression que nos demandes proviendraient d'un domaine spécifique. Je voulais compléter quelque chose comme la clé API Google Maps. Ils intègrent en quelque sorte le nom de domaine dans la clé. – DDiVita

Questions connexes