Wurde mal noch um Socks5 Proxy für Abfragen der Schnittstellen erweitert
Die Variable "PROXY_IF" darf hinter cURL ruhig stehen bleiben - sofern sie gefüllt ist, werden die Daten über den Socks geleitet - andernfalls ist kein Proxy aktiv. Sinnig ist es natürlich die Proxy-Daten vor Aufruf einzulesen und nicht manuell hier innerhalb der Funktion anzupassen - das wurde lediglich zum Verständnis aufgenommen.Code:proxy_user="" proxy_pass="" proxy_host="" proxy_port="" if ([ -n "${proxy_user}" ] && [ -n "${proxy_pass}" ] && [ -n "${proxy_host}" ] && [ -n "${proxy_port}" ]); then PROXY_IF="-U ${proxy_user}:${proxy_pass} --socks5 ${proxy_host}:${proxy_port}" else unset PROXY_IF fi
Arbeite sehr gern mit einer Proxy-Rotation. Zum Beispiel wenn man auf einem Server mehrere Adressen hat und diese per ipTables in Rotation laufen lässt. So kann ein Funktionsaufruf über die eine IP raus gehen, der nächste über die andere, usw... Nutze dazu "mocks proxy", adde dann meine IP-Adressen auf dem Server. cURL spricht mit mocks und durch die ipTable-Rotation geht er immer über eine andere IP raus. Man kann natürlich auch einen Crawler schreiben der diverse Proxy-Seiten einliest, die Proxies vor Absetzen des Funktionsaufrufs checkt und dann einen derer nutzt... möglich ist alles
Sowas geht natürlich auch prima mit dem TOR-Netzwerk. So habe ich mir ein TOR-Relay aufgesetzt und habe ihn für meine IP-Adresse als SOCKS freigegeben. Damit lässt sich dann auch einfach arbeiten. Ein kleiner Cronjob der auf den TOR-Server ein reload macht (neue IP beziehen), und host:port für cURL verwenden. Ist natürlich gerade beim verschieben von großen Dateien aufgrund der geringen Bandbreite/schlechten Routings... untauglich.. aber möglich. Zuvor findet natürlich ein "uptime check" des Hosts statt ob der Proxy nicht beim Host gesperrt ist... wenn doch kann man in einer Schleife ein reload machen bis es durch geht.



THEMENSTARTER


Zitieren