【问题标题】:Get public ip not private获取公共 ip 不是私有的
【发布时间】:2018-12-20 05:54:39
【问题描述】:

我正在使用 REMOTE_ADDR 获取 ip 以供使用,它返回给我的公司 IP:192.168.30.124 在我的 maxmind 位置数据库和 ipstack 等网站中不匹配

但是,当我访问类似网站时,他们能够检索到我的公共 IP,即 103.52.62.220 和正确的国家/地区。我错过了什么。

【问题讨论】:

  • 你刚刚问过这个here。您删除并重新发布的原因是什么?
  • @PaulCrovella 我想出了一些如何解决的理论,尝试了所有方法并失败了,这就是我需要再次发布的原因。
  • 我明白了。请注意,您本可以取消删除原始内容,因为已删除的问题会输入到自动禁止算法中,并且可能会导致您的帐户将来无法提问。
  • 感谢您的提醒。

标签: php geolocation ip


【解决方案1】:

phihag presented here 的一个简单解决方案是执行以下操作:

$externalContent = file_get_contents('http://checkip.dyndns.com/');
preg_match('/Current IP Address: \[?([:.0-9a-fA-F]+)\]?/', $externalContent, $m);
$externalIp = $m[1];

简单地说,您需要从必须通过该 IP 地址路由回的服务器(网络外部的服务器)获取您的公共 IP。

在我提供的链接中有更多相关信息。

【讨论】:

  • 我用api.ipify.org尝试了同样的事情,但是它把我带到了AUS,IP为103.67.235.63而不是PH ip:103.52.62.220,因为我在一个可能与相同网络的vpn下服务器我可能会尝试查看 Kapsonfire 在下面做了什么。
【解决方案2】:

如果服务器在同一个网络中,那么你将只获得本地 ip,因为,没有理由离开 Intranet 只是为了回来。路由器直接将其路由到本地 ip 的服务器。

这是tcp相关的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-24
    • 1970-01-01
    • 2017-01-01
    相关资源
    最近更新 更多