Frage

Ich versuche, den Verkehr auf meine Website zu begrenzen, so dass Personen, die versuchen, Massenmengen an Daten zu schirmen, nach einer Weile blockiert werden. Ich soll dies basierend auf den IPs eingehender Anfragen tun. Ich glaube, ich habe die IP-limitierende Funktionalität geschrieben, aber ich bin verblüfft darüber, wie ich sie testen kann. Ich muss in der Lage sein, meine IP -Adresse viele Male zu ändern, um den gültigen Datenverkehr zu simulieren. Ich muss auch> 20 verschiedene IPs testen, daher funktioniert eine Proxy -Lösung für jeden nicht für mich.

Ich teste den Code auf meinem lokalen Computer (Auslauf von Ubuntu), damit ich meine Servereinstellungen (Apache) ändern kann, wenn ich für diesen Test muss.

Ich bin hinter einem Unternehmensnetzwerk, daher kann ich keine MAC-Adress-/ARP-Einstellungen ändern, um eine neue IP "neu zugewiesen" zu werden. Ich hoffte auf eine Art von IP-Veränderung von Lokalhost, damit ich die Tatsache nutzen konnte, dass der Server und der Client dieselbe Maschine waren.

Außerdem habe ich versucht, den Code zu vermeiden, bevor er auf Produktionsserver eingeführt wird, aber das kann der beste Weg sein, dies zu tun.

Wie kann ich das einrichten?

War es hilfreich?

Lösung

Nun, was Sie tun könnten, ist, anstatt die IP tatsächlich zu überprüfen, um so etwas zu tun:

$ip = '1337.1337.1337.1337';

Anstatt von:

$ip = $_SERVER['REMOTE_ADDR']

Und dann erstellen Sie Ihren IP -Checking -Code.

Wenn Sie also fertig sind, können Sie Ihren $ IP -Variablencode so aussehen lassen:

//$ip = '1337.1337.1337.1337';
$ip = $_SERVER['REMOTE_ADDR']

So können Sie einfach den "Debug -Switch" ein- und ausschalten

BEARBEITEN:

Oder machen Sie die IP -Dynamik:

$ips = Array('192.168.1.220', '120.843.592.86', '256.865.463.563');
$ip = $ips[rand(1,count($ips)-1)];

Andere Tipps

Sie können dies einfach tun, indem Sie den folgenden Befehl unter Linux ausführen:

ifconfig ETH0: 0 127.0.0.2
ifconfig ETH0: 1 127.0.0.3
etc ... (Erstellen gefälschter lokaler Schnittstellen)

Möglicherweise müssen Sie Apache so konfigurieren, dass Sie diese IPs anhören, wenn Sie nicht auf 0.0.0.0 (alle Schnittstellen) zuhören, und dann können Sie direkt auf diese IPs zugreifen.

Wenn Sie andere IPs verwenden möchten, können Sie dies auch problemlos tun, aber denken Sie daran, sie zu entfernen, sobald Ihre Tests durchgeführt werden.

Dies funktioniert nur von Ihrer lokalen Maschine zu Ihrer lokalen Maschine.

Es gibt viele Möglichkeiten, wie Sie dies testen können. Der einfachste Weg wäre IMO, eine Liste von ARP -Einträgen zu erstellen, bei denen die IP -Adressen Sie für die MAC -Adresse des Servers vermitteln. Sie können dann eine einfache App schreiben, die die SRC -Adresse auf jede der verkörperten IP -Adressen festlegt, eine Verbindung herstellt und die gewünschte HTTP -Anforderung senden. Der Server sollte gut antworten.

Ich bin mir nicht ganz sicher, ob Sie dies suchen, aber ich musste meine MAC -Adresse fälschen, damit ich eine neue IP bekommen konnte, um an meiner Universität ein Download -Kontingent zu umgehen. Das Ändern des Mac führte zu einer neuen IP. Es gibt ein Programm in den Standard-Ubuntu-Repositories mit dem Namen "Macchanger". Führen Sie dies einfach mit der richtigen Option ("-r" für zufällig aus) und geben Sie dann das Gerät an. Wie so.

sudo macchanger -r eth0

Networking muss dabei deaktiviert werden. Sie können dies tun, indem Sie mit der rechten Maustaste auf das Netzwerksymbol klicken und das Feld "Networking aktivieren".

Sie möchten dies auf der Ebene der Firewall in Betracht ziehen (wenn nicht die Corp -Grenz -Firewall als eine SW -Firewall auf Ihrem Wirt). Es gibt viele Situationen, in denen ein missbräuchlicher Host die Leistung auf Ihrer Website noch abnehmen oder beeinflussen kann, wenn Sie ihn nur auf Anwendungsebene einschränken. Sie konsumieren immer noch Sockets und Webserver -Worker -Threads, obwohl Sie sie am Ende ablehnen. Möglicherweise haben Sie sogar einen Code, der vor der IP -Prüfung Ausgaben enthält. Es hängt wirklich alles davon ab, wie leicht Ihre Anwendung ist, aber eines ist sicher, dass eine Firewall, ob Hardware oder SW, widerspenstige Kunden weitaus effizienter blockieren kann als Ihre Anwendung.

Diese Antwort ist wahrscheinlich übertrieben für diese Anwendung, aber ich mag es zu verwenden tcpdump / libpcap, Winpcap, und rohe Steckdosen zur Erzeugung von Verkehr. Sie haben nicht nur eine große Kontrolle über die Lautstärke, die zu und aus Ihrer Bewerbung geht, sondern lernen viel darüber, was Sie mit Firewall-/Verkehrsfiltereinstellungen für Sie ausführen können und welche Arten von Verkehr blockiert werden, die Sie nicht erwartet haben (oder Das wollen Sie nicht blockiert).

Verwenden Sie die Zufallsfunktion und setzen Sie die Grenze auf Rand (0,255) und concat String in das IP -Format. Wann immer Sie anrufen, erhalten Sie eine neue IP -Adresse

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top