我正在使用 cURL 更改站点的 HTTP 引用,如果它来自搜索引擎,则只允许您查看其内容:
我能够做到这一点!
但问题是:网站获取的访问者的IP地址不是我的!这是我用来更改 ref 的网站的 IP 地址!,这里是代码:
echo geturl('http://example.com', 'http://referring-site.com');
function geturl($url, $referer) {
$headers[] = 'Accept: image/gif, image/x-bitmap, image/jpeg, image/pjpeg,text/html,application/xhtml+xml';
$headers[] = 'Connection: Keep-Alive';
$headers[] = 'Content-type: application/x-www-form-urlencoded;charset=UTF-8';
$useragent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0)';
$process = curl_init($url);
curl_setopt($process, CURLOPT_HTTPHEADER, $headers);
curl_setopt($process, CURLOPT_HEADER, 0);
curl_setopt($process, CURLOPT_USERAGENT, $useragent);
curl_setopt($process, CURLOPT_REFERER, $referer);
curl_setopt($process, CURLOPT_TIMEOUT, 30);
curl_setopt($process, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($process, CURLOPT_FOLLOWLOCATION, 1);
$return = curl_exec($process);
curl_close($process);
return $return;
}
假设我使用该代码
mysite.com
所以 example.com 将 si refering-site.com 作为 HTTP ref,但它认为访问者 IP 与 mysite.com 相同!
何我可以得到它来获取访问者的真实 IP 地址而不是我使用代码的站点的 IP 地址吗?
我试图更换
return $return;
和
return "<?php
header( 'Location: http://example.com' ) ;
?>";
或者
echo '<META HTTP-EQUIV='Refresh' Content='0; URL=http://example.com'>';
但它不起作用!