我正在使用cURL登錄Facebook,並且正在使用TOR代理進行此登錄。這裏是我的代碼:即使使用TOR + cURL + PHP,Facebook仍會獲得我真實的IP
function loginOnFacebook($login_email, $login_pass)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://m.facebook.com/login.php');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// Proxy configuration, very important!
if(isset($params['t']))
{
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
curl_setopt($ch, CURLOPT_PROXY, "127.0.0.1:9050");
curl_setopt($ch, CURLOPT_PROXYTYPE, 7);
}
curl_setopt($ch, CURLOPT_POSTFIELDS,'charset_test=€,´,€,´,水,Д,Є&email='.urlencode($login_email).'&pass='.urlencode($login_pass).'&login=Login');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept-Charset: utf-8','Accept-Language: en-us,en;q=0.7,bn-bd;q=0.3','Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'));
curl_setopt($ch, CURLOPT_COOKIEFILE, getcwd());
curl_setopt($ch, CURLOPT_COOKIEJAR, getcwd());
curl_setopt($ch, CURLOPT_USERAGENT, "user_agent");
curl_setopt($ch, CURLOPT_REFERER, "http://m.facebook.com");
$fbMain = curl_exec($ch) or die(curl_error($ch));
$url = 'https://m.facebook.com/home.php?refid=18';
curl_setopt($ch, CURLOPT_URL, $url);
$demo_mac=curl_exec($ch);
$effectiveUrl = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
if($effectiveUrl == $url)
return true;
else
return false;
}
你可以看到,我檢查$param -t
使用TOR代理通過端口9050
它的工作原理,我檢查是這樣的:
for($i = 0; $i <= 50; $i++)
{
$ch = curl_init('http://icanhazip.com/');
curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
if(isset($params['t']))
{
curl_setopt($ch, CURLOPT_PROXY, "127.0.0.1:9050");
curl_setopt($ch, CURLOPT_PROXYTYPE, 7);
}
$myIp = curl_exec($ch) or die(curl_error($ch));
print($myIp);
}
此代碼將檢查我的公共IP在http://icanhazip.com/
並打印給我,它的工作,我得到一個TOR IP。
但是,當我嘗試使用這個系統在Facebook上登錄時,我仍然得到我的真實IP地址。
有人可以幫我鑑定一下是怎麼回事?
您正在調用'curl_exec()'兩次,但是您只設置一次代理配置。確保curl不會丟棄這兩個請求之間的連接,並繞過第二個請求上的代理。 –
感謝您的支持,但它仍然無效,即使是在loginOnFacebook()上刪除第二個電話:( )請記住,這兩個片段不會一起執行,第二個片斷僅用於測試代理工作! 感謝雷米! – user3159043
對於Facebook你應該他們的onion服務在https://www.facebookcorewwwi.onion這確保了整個連接永遠不會離開Tor網絡 – qbi