相关疑难解决方法(0)

PHP exec()vs system()vs passthru()

有什么区别?

每个功能都有特定的情况或原因吗?如果是的话,你能举一些这些情况的例子吗?

PHP.net说它们用于执行外部程序.参见参考 从我看到的例子中,我没有看到任何明显的区别.

如果我只是简单地运行一个脚本(bash或python),你建议我使用哪个函数?

php command exec

301
推荐指数
5
解决办法
23万
查看次数

在PHP中检索用户正确IP地址的最准确方法是什么?

我知道有许多$ _SERVER变量头可用于IP地址检索.我想知道如何使用所述变量最准确地检索用户的真实IP地址(很清楚没有方法是完美的)?

我花了一些时间试图找到一个深入的解决方案,并根据许多来源提出了以下代码.我很乐意,如果有人可以请求在答案中挖洞,或者对某些事情做些准确的解释.

编辑包括来自@Alix的优化

 /**
  * Retrieves the best guess of the client's actual IP address.
  * Takes into account numerous HTTP proxy headers due to variations
  * in how different ISPs handle IP addresses in headers between hops.
  */
 public function get_ip_address() {
  // Check for shared internet/ISP IP
  if (!empty($_SERVER['HTTP_CLIENT_IP']) && $this->validate_ip($_SERVER['HTTP_CLIENT_IP']))
   return $_SERVER['HTTP_CLIENT_IP'];

  // Check for IPs passing through proxies
  if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
   // Check if multiple IP addresses exist in var
    $iplist = explode(',', …
Run Code Online (Sandbox Code Playgroud)

php ip-address

280
推荐指数
4
解决办法
8万
查看次数

使用PHP获取客户端IP地址

我想获得使用我的网站的客户端IP地址.我正在使用PHP $_SERVER超全局:

$_SERVER['REMOTE_ADDR'];
Run Code Online (Sandbox Code Playgroud)

但我发现使用它无法提供正确的IP地址.我得到了我的IP地址,看到它与我的IP地址不同,我也可以在某些网站上看到我的IP地址,例如:

http://whatismyipaddress.com/
Run Code Online (Sandbox Code Playgroud)

我粘贴了我的PHP函数的IP地址,但是这个网站没有显示结果.这个问题是如何产生的,如何获得客户端的IP地址?

php ip-address

192
推荐指数
2
解决办法
75万
查看次数

如何从访客获得真实IP?

我正在使用这个PHP代码来获取访问者的IP地址:

<?php echo $_SERVER['REMOTE_ADDR']; ?>
Run Code Online (Sandbox Code Playgroud)

但是,当他们使用代理时,我无法从访问者那里获得真正的IP地址.在这种情况下,有没有办法获取访问者的IP地址?

php ip

85
推荐指数
6
解决办法
24万
查看次数

CloudFlare并通过PHP记录访客IP地址

我正在尝试使用PHP来跟踪和记录访问我网站的用户/访问者$_SERVER['REMOTE_ADDR'].PHP中IP地址跟踪的典型方法.

但是,我使用CloudFlare进行缓存等,并将其IP地址作为CloudFlare接收:

108.162.212.* - 108.162.239.*

在使用CloudFlare的同时检索实际用户/访客IP地址的正确方法是什么?

php logging ip-address cloudflare

76
推荐指数
4
解决办法
8万
查看次数

从http.Request(Golang)获取客户端IP地址的正确方法

获取所有客户端IP地址的正确方法是http.Request什么?在PHP有很多的变数,我应该检查.Go上也一样吗?

我发现的一个是:

req.RemoteAddr
Run Code Online (Sandbox Code Playgroud)

请求是否区分大小写?例如和?x-forwarded-for相同?(来自)X-Forwarded-ForX-FORWARDED-FORreq.Header.Get("X-FORWARDED-FOR")

ip http go

59
推荐指数
5
解决办法
11万
查看次数

如何使用PHP查找用户的IP地址?

我想在他/她进入我的页面时找到用户的IP地址.我如何以编程方式执行此操作?

php ip-address

38
推荐指数
0
解决办法
4万
查看次数

PHP中机器的IP地址给出了:: 1,但为什么呢?

我试图通过PHP获取我的机器的IP地址.为此,我写的代码如下:

<?php echo  "<br />".$_SERVER['REMOTE_ADDR'];?>
Run Code Online (Sandbox Code Playgroud)

但这段代码不起作用.它正在返回" ::1".请帮我如何获取实际的IP地址.

php ip-address

34
推荐指数
3
解决办法
5万
查看次数

如何在PHP Web服务中获取客户端的IP地址?

我开发了一个PHP Web服务.我想记录使用此Web服务的WS客户端的所有传入连接.如何获取客户端的IP地址?的价值

$_SERVER['HTTP_CLIENT_IP']
Run Code Online (Sandbox Code Playgroud) 好像总是空着的.

php logging web-services ip-address

31
推荐指数
4
解决办法
1万
查看次数

PHP是2017年获得真实用户IP地址的最准确/最安全的方式

通过PHP获取用户IP地址的最准确方法是什么?

我已经阅读了很多关于它的SO问题和答案,但大多数答案都是陈旧的,用户评论说这些方法是不安全的.

例如,看看这个问题(2011):如何在PHP中获取客户端IP地址?

蒂姆肯尼迪的回答包含一个建议,使用如下:

if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
    $ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
    $ip = $_SERVER['REMOTE_ADDR'];
}
Run Code Online (Sandbox Code Playgroud)

但正如我已经阅读了很多,我已经看到使用X_FORWARDED_FOR是不安全的,因为下面的评论强调:

除非您完全了解它的作用,否则请勿使用上述代码!由于这个原因,我已经看到了MASSIVE安全漏洞.客户端可以将X-Forwarded-For或Client-IP标头设置为它想要的任意值.除非您有可信的反向代理,否则不应使用任何这些值.

由于我完全不知道它的作用,我不想承担风险.他说它不安全,但没有提供一种安全的方法来获取用户的IP地址.

我试过这个简单的$_SERVER['REMOTE_ADDR'];,但这会返回错误的IP.我已经测试了这个,我的真实IP遵循这种模式:78.57.xxx.xxx但我得到的IP地址如下:81.7.xxx.xxx

所以你有什么想法吗?

php security ip proxy reverse-proxy

17
推荐指数
4
解决办法
7581
查看次数

标签 统计

php ×9

ip-address ×6

ip ×3

logging ×2

cloudflare ×1

command ×1

exec ×1

go ×1

http ×1

proxy ×1

reverse-proxy ×1

security ×1

web-services ×1