2016-07-20 13 views
0

Ich habe ein Skript, das eine Menge Whois-Abfragen macht. Wenn ich nur eine Schnittstelle benutze, werde ich gesperrt. Aber ich habe eth1 und eth1: 0 bis eth1: 13, also 15 IP-Adressen, um diese Abfragen zu drehen.Linux: Wie route ich die Schnittstelle basierend auf dem Zielport?

Wie kann ich diesen Whois-Befehl aufrufen, damit ich angeben, welche Schnittstelle er für die Abfrage verwendet?

Ich habe this post gesehen, aber ich kann die Routing-Tabelle nicht hinzufügen, da meine Schnittstellen bereits eine Route haben, um das Gateway zu spezifizieren.

z.B. route hinzufügen -net xxx32/29 gw xxX33 dev eth1

Also mein Plan ist es, nur die Route für Ziel-Port 43 zu ändern, dann die Abfrage zu machen, dann diese Route zu entfernen, eine andere, die andere Abfrage zu machen, usw. Ein bisschen wie folgt aus:

route add -port 43 dev eth1 
whois example.com 
route del -port 43 dev eth1 

route add -port 43 dev eth1:0 
whois example.org 
route del -port 43 dev eth1:0 

route add -port 43 dev eth1:1 
whois example.net 
route del -port 43 dev eth1:1 
... 
WARNING: -port does not work indeed. 

Also, was ist der einfachste Weg, das zu erreichen, ohne in Unordnung zu dem Rest des Verkehrs des Servers sein würde?

Danke!

+0

Die Frage, die Sie verlinkt haben, erklärt, wie man es mit 'iptables' macht, nicht mit 'route add'. Hast du das probiert? – Barmar

+0

"Wenn ich nur eine Schnittstelle benutze, werde ich gesperrt". Sie gehen davon aus, dass der Service-Betreiber nicht schlau genug ist, um mehr Fälle abzudecken. Was du versuchst zu tun, kann dazu führen, dass deine gesamte Domain gesperrt wird. – kaylum

+0

@Barmar: Nun, es ist eine Kombination aus beiden offensichtlich, aber ich habe es versucht und kann die Route nicht hinzufügen, aus dem Grund, den ich erklärte. kaylum: außerhalb des Themas, lass uns bitte nicht trollen oder argumentieren. Vielen Dank. – FlorianB

Antwort

0

Ok, also beantworte ich meine eigene Frage.

Dies ist keine Lösung, die für alles andere als ein Whois funktioniert, aber es kann den Trick für viele Protokolle machen.

Verwenden Sie CURL, um die Abfrage durchzuführen, da curl über eine Schnittstelle verfügt.

Natürlich müssen Sie eine Liste von Whois-Servern wie this one haben.

z.B. in Perl:

use WWW::Curl::Easy; 
my $curl = WWW::Curl::Easy->new; 
$curl->setopt(CURLOPT_URL, "whois.crsnic.net:43"); 
$curl->setopt(CURLOPT_INTERFACE, "1.2.3.4"); 
$curl->setopt(CURLOPT_CUSTOMREQUEST, "example.com\r\n"); 
my $curldata = ""; 
$curl->setopt(CURLOPT_WRITEDATA, \$curldata); 
$curl->perform; 
print("$curldata\n"); 

Dann können Sie $ curldata zu finden, um den dünnen Whois-Server und auf die gleiche Sache auf sie zu analysieren.

Verwandte Themen