2012-11-09 43 views
2

我需要從遠程http server.Im獲取一些數據,使用Curl Classes進行多請求。 我的問題是遠程服務器的防火牆。我在10000 GET和POST請求之間發送1000。而服務器從DDOS禁止我。CURL和DDOS問題

©使用此措施。

  • 包仍然包含頭信息

    curl_setopt($這 - > CH,CURLOPT_HTTPHEADER,$頭);

  • 包仍包含隨機referer信息,

    curl_setopt($這 - > CH,CURLOPT_REFERER,$參[蘭特(0,計數($參))]);

  • 包仍包含隨機用戶代理

    curl_setopt($這 - > CH,CURLOPT_USERAGENT,$劑[蘭特(0,計數($劑))]);

  • 我用隨機間隔的睡眠功能發送包。

    sleep(rand(0,10));

但是禁止每次訪問服務器1小時。

對不起,我的英語不好:) 謝謝大家。

+1

有沒有機會遠程服務器應該拒絕這個數量的入站請求_intentionally_? – quickshiftin

回答

1

在短時間內向服務器發送大量請求很可能與DOS攻擊具有相同的影響,無論這是否是您的意圖。一個快速的解決方案是將睡眠線從sleep(rand(0,10));改爲這意味着有11比1的機會立即將下一個請求發送到sleep(3);,這意味着請求之間總是會有3秒(大約)。 3秒應該足以保證大多數服務器的快樂。一旦你驗證了這個作品,你可以將這個值減小到2或1,看看你能否加快速度。

更好的解決方案是在服務器上創建一個API,使您能夠在1或至少只有少數請求中獲取所需的數據。顯然這隻有在你能夠對服務器進行更改(或者可以說服那些能夠代表你進行更改的人)時纔有可能。