php获取用户公网ip,请问下,用PHP获取浏览当前用户的公网IP地址,用什么方法啊?...

bf7686a9eb98f7b229059886b59e9c71.png

桃花长相依

public function ip($type = 0, $adv = true)

{

$type = $type ? 1 : 0;

static $ip = null;

if (null !== $ip) {

return $ip[$type];

}

if ($adv) {

if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {

$arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);

$pos = array_search('unknown', $arr);

if (false !== $pos) {

unset($arr[$pos]);

}

$ip = trim(current($arr));

} elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {

$ip = $_SERVER['HTTP_CLIENT_IP'];

} elseif (isset($_SERVER['REMOTE_ADDR'])) {

$ip = $_SERVER['REMOTE_ADDR'];

}

} elseif (isset($_SERVER['REMOTE_ADDR'])) {

$ip = $_SERVER['REMOTE_ADDR'];

}

// IP地址合法验证

$long = sprintf("%u", ip2long($ip));

$ip = $long ? [$ip, $long] : ['0.0.0.0', 0];

return $ip[$type];

}

直接拿去用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在前端 JavaScript 中,我们无法直接获取客户端的公网 IP 地址,因为它是运行在浏览器中的脚本,不具有直接访问网络的能力。但是,我们可以通过向后端服务器发送请求,然后在后端服务器处理请求时获取客户端的 IP 地址。 具体实现方式如下: 1. 在前端代码中,使用 Ajax 或者 Fetch API 向后端服务器发送请求,一般使用 GET 方法。 2. 在后端服务器收到请求时,可以从请求头中获取客户端的 IP 地址。具体获取方式取决于后端服务器使用的技术栈,例如在 Node.js 中,可以通过 `req.headers['x-forwarded-for']` 获取客户端 IP;在 PHP 中,可以通过 `$_SERVER['REMOTE_ADDR']` 获取客户端 IP。 3. 将客户端 IP 地址返回给前端,前端就可以得到客户端的公网 IP 地址了。 需要注意的是,这种方式获取到的 IP 地址并不一定准确,因为客户端 IP 地址可能会被代理、转发、隐藏等操作所改变。 ### 回答2: 使用 $.get 方法获取客户端公网 IP 需要通过发送 HTTP 请求到一个第三方服务提供商的 API 接口来获取。以下是一种可能的实现方式: ```javascript $.get('https://api.ipify.org?format=json', function(response) { var publicIP = response.ip; console.log('客户端公网 IP 是:' + publicIP); }); ``` 使用上述代码,我们在客户端发送了一个 GET 请求到 ipify.org 的 API 接口,将 "format=json" 作为查询参数传递进去,告诉该接口返回的数据格式为 JSON。在请求成功后,回调函数将返回的响应数据作为参数,其中 response.ip 即为客户端公网 IP。 需要注意的是,这种方式依赖于第三方服务提供商的 API 接口的可用性。当第三方服务提供商的 API 接口不可用或发生变化时,该方法可能无法正常获取客户端公网 IP。另外,使用第三方服务需要遵守其使用规定和条款。 ### 回答3: 使用$.get方法可以通过发送HTTP请求,获取到客户端的公网IP地址。 首先,我们可以使用以下的代码来实现: ```javascript $.get("https://api.ipify.org/?format=json", function(response) { var publicIP = response.ip; console.log(publicIP); }); ``` 上述代码中,我们向api.ipify.org发送一个GET请求,该API会返回一个包含公网IP地址的JSON响应。通过回调函数,在请求成功后,我们可以从响应中提取出IP地址并进行打印输出。 当调用`$.get`方法时,它会向指定的URL发送一个AJAX请求,并接收到服务器返回的响应数据。在本例中,我们使用的URL是https://api.ipify.org/?format=json。该URL会返回一个JSON格式的响应,其中包含了客户端的公网IP地址。 通过使用回调函数,我们可以在获取到响应后对数据进行处理。在上述示例中,我们将响应的IP地址存储在变量`publicIP`中,并通过`console.log`方法将其打印输出到浏览器的控制台。 总之,通过使用$.get方法和提供公网IP的API,我们可以获取到客户端的公网IP地址

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值