Estoy tratando de determinar programáticamente la compañía * asociada a una dirección IP dada.¿Cómo puedo determinar a qué compañía pertenece una dirección IP?
Mi primera suposición era la siguiente:
string hostname = Dns.GetHostEntry(IPAddress.Parse(ip)).HostName;
pero esto no va a funcionar si el DNS inversa no está configurada correctamente, lo que parece suceder el 90% del tiempo.
Sin embargo, algunos sitios web aún pueden determinar con éxito la compañía asociada a una dirección IP específica, incluso si falla el DNS inverso. Por ejemplo, en this site, el campo Proveedor de ISP a veces contiene información valiosa (es decir, el nombre de la empresa), incluso si el nombre de host no está configurado.
¿Cuál es la forma más sencilla de lograr lo mismo usando .net?
Notas:
- no necesito un nombre canónico. es decir, MS o Microsoft están bien.
- Me estoy dirigiendo a grandes empresas, que es probable que "posean" sus rangos de direcciones IP.
- Me estoy ejecutando en Windows, por lo que las herramientas whois de Unix no están instaladas por defecto.
Editar respecto al uso de whois: A veces, there's no whois information associated with an IP
El ejemplo que menciona de "No hay información whois asociada con una dirección IP" es claramente incorrecto. 121.243.106.222 tiene información de whois, es Tata (el ISP más grande de la India). Como está en Asia, debe consultar el servidor whois de APNIC, no el servidor RIPE. (O consulta ARIN, que te redirigirá). Sí, whois es complicado. – bortzmeyer
No es necesario utilizar "herramientas whois de Unix", el protocolo Whois es tan simple que se necesitan dos líneas para implementarlo en cualquier idioma más reciente que C. – bortzmeyer