是否可以使用 curl 将数据发布到 Web 表单但更改源 IP 地址?
如果 curl 不能帮助我,还有其他想法吗?
谢谢你的时间-A
这在 curl FAQ 中得到解决,答案是:
不,libcurl 在更高级别上运行。此外,伪造IP地址意味着发送带有虚构源地址的IP数据包,然后您通常会在接收发回的数据包时遇到问题,因为它们不会被路由给您!
如果您使用代理访问远程站点,这些站点将不会看到您的本地 IP 地址,而是会看到代理的地址。
另请注意,在许多网络上使用 NAT 或其他 IP 转换技术,使您在本地看到和使用不同于远程服务器将看到您来自的 IP 地址。您也可以考虑使用http://www.torproject.org。
您可以利用CURLOPT_PROXY
并CURLOPT_POST
解决您的问题。下面的示例代码。
<?php
$url = 'http://somesite.com/form.php';
$proxy = '127.0.0.1:8888';
$postVar ='postvar1=value1&postvar2=value2&postvar3=value3';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$postVar);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
$curl_page = curl_exec($ch);
curl_close($ch);
echo $curl_page;