Sto provando a determinare in modo programmatico la società * associata a un dato indirizzo IP.Come determinare a quale azienda appartiene un indirizzo IP?
La mia prima risposta è stata questa:
string hostname = Dns.GetHostEntry(IPAddress.Parse(ip)).HostName;
ma questo non funzionerà se il reverse DNS non è impostato correttamente, che sembra accadere il 90% del tempo.
Tuttavia alcuni siti Web sono ancora in grado di determinare con successo la società associata a un IP specifico anche se il dns inverso non riesce. Ad esempio, su this site, il campo Provider ISP contiene talvolta informazioni importanti (ad esempio il nome dell'azienda) anche se il nome host non è impostato.
Qual è il modo più semplice per ottenere la stessa cosa utilizzando .net?
Note:
- Non ho bisogno di un nome canonico. cioè MS o Microsoft sono entrambi ok.
- Mi rivolgo a grandi aziende, che probabilmente "possiedono" i loro intervalli di indirizzi IP.
- Sono in esecuzione su Windows, quindi gli strumenti whois di Unix non sono installati per impostazione predefinita.
Modifica per quanto riguarda l'uso di whois: A volte, there's no whois information associated with an IP
L'esempio di "Nessuna informazione whois associata a un indirizzo IP" è chiaramente errata. 121.243.106.222 ha informazioni whois, è Tata (il più grande ISP in India). Poiché è in Asia, è necessario interrogare il server whois APNIC, non RIPE. (Oppure interroga ARIN, che ti reindirizzerà.) Sì, whois è complicato. – bortzmeyer
Non è necessario utilizzare "strumenti whois unix", il protocollo whois è così semplice da richiedere due righe per implementarlo in qualsiasi lingua più recente di C. – bortzmeyer