2013-05-14 4 views
5

Gibt es eine Möglichkeit, ein Whois auf einer IP durchzuführen, um den ISP zu erhalten, der diese IP in einem Node.js/Express-Server bereitstellt?Erhalten Sie den ISP einer IP in node.js

Ich habe bereits die IP, ich bin nicht auf der Suche nach einer Möglichkeit, die IP des Clients zu erhalten.

Ich habe Wege gefunden mit externer Anfrage an kostenpflichtige Dienste, die JSON zurücksenden, aber ich möchte einen nativen Weg finden.

Wissen Sie etwas, das mir helfen könnte?

Bearbeiten: Ich versuche nicht, einen Whois-Server zu bauen, ich brauche nur für die Anwendung, die ich erstelle, um den ISP-Namen des Kunden zu erhalten.

+0

Möchten Sie den Whois-Client in node.js implementieren? – booyaa

+0

Überhaupt nicht. Ich würde gerne einen verwenden. – brnrd

+0

Sie meinen, einen vorhandenen Service zu nutzen, der kostenlos ist? – booyaa

Antwort

7

Sie können ISP-Informationen mit dem Modul node-whois abrufen, aber in ihrer Antwort ist es ziemlich komplex, auf den Wert für einen bestimmten Schlüssel zuzugreifen. So gibt es eine andere Möglichkeit, wie Sie Satellitenmodul verwenden können. Dieses Modul kann eine schnelle Antwort geben und eine Antwort ist im JSON-Format verfügbar, so dass Sie leicht auf alle Schlüsselwerte zugreifen können. Hier ist der Code.

var satelize = require('satelize'); 
var ExternalIP = "173.194.70.100"; // I asume that, you already have external(public)IP 
satelize.satelize({ip: ExtenalIP}, function(err, geoData) 
{ 

    if(err){ 
     console.log(" Error in retriving ISP Information"); 
    } 
    else 
    { 
     console.log("ISP Information for "+ ExternalIP+" :"+geoData); 
    } 
}); 
+0

Können Sie einen Link zum Satelite Npm Modul hinzufügen. Wäre nett. – Walter

6

This ist ein Node.js-Modul, das einen Whois-Client implementiert.

Wie von @robertklep richtig ausgeführt, funktioniert das obige Modul nicht mit IP-Adressen. Dennoch tut node-whois (Ich kann das diesmal persönlich getestet):

"use strict"; 

var whois = require('node-whois'); 

whois.lookup('173.194.70.100', function(err, data) { 
    console.log(err, data); 
}); 

Das einzige Problem ist, dass die Ausgabe nicht sehr schön ist.

+0

Haben Sie versucht, eine IP-Nummer zu übergeben? – robertklep

+0

@robertklep Vielen Dank, dass Sie darauf hingewiesen haben. Meine Antwort wurde korrigiert. – adrianp

+0

Das Problem mit Ihrer aktualisierten Lösung ist, dass sie sich auf andere WHOIS-Server beziehen kann, die durchsucht werden müssen, um den tatsächlichen ISP zu erhalten, dem die IP-Nummer zugewiesen ist (über die 'ReferralServer'-Eigenschaft). – robertklep