windows - son - trouver adresse ip de quelqu'un




Comment puis-je savoir quelle est mon adresse IP externe? (9)

Depuis que cette question a été posée il y a un certain temps, il existe maintenant un service Web disponible gratuitement conçu spécifiquement pour vous permettre de déterminer votre adresse IP par programme, appelée ipify .

$ curl 'https://api.ipify.org?format=json'

Résulte en

{"ip": "1.2.3.4" /* your public IP */}

Mes ordinateurs sont assis derrière un routeur / pare-feu. Comment puis-je savoir par programme quelle est mon adresse IP externe. Je peux utiliser http://www.whatsmyip.org/ pour les requêtes ad-hoc, mais les TOS ne permettent pas les contrôles automatiques.

Des idées?


Malheureusement à partir de 2013, whatismyip.com facture le service.

http://www.icanhazip.com est toujours très fort, 3 ans plus tard. Juste sorties l'adresse IP sous forme de texte, absolument rien d'autre.

http://checkip.dyndns.org fonctionne toujours aussi bien.

Vous pouvez également utiliser Google si vous voulez être sûr qu'il ne va pas tomber, mais il peut toujours vous bloquer pour les violations de TOS.

https://www.google.ie/search?q=whats+is+my+ip

Mais même quand ils me bloquent, ils me disent toujours l'adresse IP de mon client dans le message d'erreur.


Mon routeur WRT54G me dit à travers sa fonctionnalité d'accès au routeur local (l'interface d'administration http), et j'imagine que quelque chose de similaire pourrait être fait avec de nombreux autres périphériques. Dans ce cas, la page d'entrée donne les octets de l'adresse IPv4 en quatre lignes contenant cette phrase:

class = num maxLength = 3 taille = 3 valeur = ' i ' nom = 'wan_ipaddr_ N ' id = 'wan_ipaddr_ N '

i est la valeur de l'octet et N est le numéro de l'octet. Ce morceau de doggerel le récupère et l'analyse pour moi, avec l'aimable autorisation de cygwin:

#! /usr/bin/env perl
use strict;
use warnings 'all';

my( $account, $password ) = @ARGV;

open QUERY,
    "curl --sslv3 --user '$account:$password' https://Linksys/ --silent |"
    or die "Failed to connect to router";

my @ipaddr = ('x','x','x','x');

while( <QUERY> ) {
    $ipaddr[$2] = $1 if /value='(\d+)' name='wan_ipaddr_([0-3])/;
}
close QUERY;
print join('.', @ipaddr);

Il n'y a aucune garantie que cela fonctionne avec toutes les versions du firmware du routeur.

Si votre routeur est configuré pour utiliser http pour cette interface, supprimez l'option --sslv3 curl et vous pouvez utiliser la notation décimale pointée pour adresser le routeur. Pour utiliser https avec les options de curl ci-dessus, j'ai aussi fait ceci:

  1. Utilisé un navigateur pour récupérer le certificat auto-signé du routeur (enregistré sous Linksys.crt).

  2. Ajouté à mon bundle CA:

    openssl x509 -in Linksys.crt -text >> /usr/ssl/certs/ca-bundle.crt
    
  3. Ajouté "Linksys" à mon fichier hosts (C: \ Windows \ System32 \ Drivers \ etc \ HOSTS sur ma boîte Win8), comme un alias pour l'adresse du routeur. Si la notation décimale pointée est donnée à curl au lieu de cet alias, elle rejette la connexion en raison d'une incompatibilité de nom de sujet de certificat.

Vous pouvez également utiliser l'option --insecure pour contourner la vérification du certificat, ce qui est probablement plus logique dans les circonstances.


Si le routeur que vous utilisez est UPnP, vous pouvez toujours utiliser une bibliothèque UPnP pour la langue dans laquelle vous développez afin d'interroger le routeur pour son adresse IP externe.


Simple mais pas élégant pour cette utilisation. J'ai installé quelques caméras de sécurité et mon fournisseur de câble - Wide Open West ou WOWWAY voulait 10 $ par mois pour configurer une IP statique - EXTORTION pour une réservation DHCP ... donc, j'ai créé un fichier VBS avec le code suivant pour déposer le résultat Dropbox et google drive ... doivent supprimer le fichier pour le nouveau à synchroniser bien que pour une raison quelconque.

Cela fonctionne sur un PC chez moi. Mon PC est configuré pour reprendre en cas de panne de courant et une tâche est programmée pour l'exécuter tous les jours une fois (notez que si vous l'avez exécuté souvent, le site bloquera vos demandes).

Maintenant, je peux obtenir mon adresse IP sur la route et regarder les gens voler mes affaires :-)

get_html "http://ipecho.net/plain", "C:\Users\joe\Google Drive\IP.html"

get_html "http://ipecho.net/plain", "C:\Users\joe\Dropbox\IP.html"



sub get_html (up_http, down_http)

dim xmlhttp : set xmlhttp = createobject("msxml2.xmlhttp.3.0")

xmlhttp.open "get", up_http, false

xmlhttp.send

dim fso : set fso = createobject ("scripting.filesystemobject")

dim newfile : set newfile = fso.createtextfile(down_http, true)

newfile.write (xmlhttp.responseText)

newfile.close

set newfile = nothing
set xmlhttp = nothing

end sub

Une autre manière est si vous avez accès à un email de nuage (yahoo, google, hotmail), envoyez-vous un email. Ensuite, voir les en-têtes et vous devriez voir votre adresse IP là-bas.

Je rechercherais la zone exacte, mais les en-têtes peuvent varier d'une implmentation à l'autre. Recherchez le reçu et suivez-le jusqu'à ce que vous arriviez à quelque chose qui ressemble à un envoi.

EDIT: Cela répond à la façon de trouver l'adresse IP, pas l'approche via PROGRAMMATIC


ifcfg.me permet de Rechercher via

nslookup
Telnet
ftp
et http

fonctionne même avec IPv6


http://ipecho.net/plain semble être une alternative réalisable, car whatismyip.com exige maintenant l'adhésion pour leur lien automatisé. Ils semblent très aimablement offering ce service gratuitement, alors s'il vous plaît ne pas en abuser.


curl ifconfig.me

ou

curl ifconfig.me/ip

Incase vous n'avez pas curl installé,

wget ifconfig.me/ip 2>/dev/null && cat ip

J'espère que cela t'aides.





networking