【问题标题】:Finding IP of a website that referring to my PHP script查找引用我的 PHP 脚本的网站的 IP
【发布时间】:2016-02-10 01:29:38
【问题描述】:

我正在创建一个生成 JavaScript 代码的 PHP 文件。

如果网站冻结了我的代码:

<script src="http://myserver.com/myJS.php"></script>

我的问题: PHP中有没有办法找出指向我的脚本的WEBSITE的IP(而不是本网站访问者的IP)???

谢谢!

【问题讨论】:

  • 您使用的是哪个操作系统?
  • 嘿 LOKESH,我的 PHP 在 Linux CentOS 上运行
  • 你能检查一下 HTTP 引用吗?
  • 好吧,所以你想要,如果有人将你的 JS 添加到他的网站,你应该得到一个网站所有者 IP 的通知。
  • 我认为这是不可能的,除非他们在链接中添加一些东西(变量)让你抓住这个

标签: php


【解决方案1】:

您可以尝试查看REFERER http 标头,该标头应包含网站的 URL,但不能保证它会为您提供正确的值。

// First get the referrer
$referer = $_SERVER['HTTP_REFERER'];

// Parse the referer url
$parts = parse_url($referer);

// Then do a NS lookup to get the IP
$ip = gethostbyname($parts['host']);

只要确保您知道REFERER 标头可以被伪造。而且 NS 查找并不总是快速或正确的。

Can I rely on Referer HTTP header?

https://en.wikipedia.org/wiki/HTTP_referer

【讨论】:

  • 这没有回答问题,因为 OP 正在询问如何获取 IP 地址。
  • 感谢@putvande 的评论。我现在已经修复了示例代码。
  • @TomerW 因为它们是两个不同的东西!!
【解决方案2】:

你需要的是:

$referer = $_SERVER['HTTP_REFERER']

然后做:

$parse   = parse_url($referer);
$host    = $parse['host'];

获取IP:

$ip      = gethostbyname($host);

将用户代理引向当前页面的页面地址(如果有)。这是由用户代理设置的。不是所有的用户代理都会设置这个,有些提供修改 HTTP_REFERER 作为一个特性的能力。简而言之,它不能真正被信任。 SOURCE

【讨论】:

  • 同样的混淆,,,他需要REMOTE_ADDR,而不是SERVER_ADDR
  • 对不起,我错了。读错了。我已经更正了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多