Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php $服务器[';远程主机';]对于某些用户为空_Php_Spoofing_Server Variables - Fatal编程技术网

Php $服务器[';远程主机';]对于某些用户为空

Php $服务器[';远程主机';]对于某些用户为空,php,spoofing,server-variables,Php,Spoofing,Server Variables,我已经激活了 HostnameLookups Double 在我的Apache2配置中,这样我就可以存储用户的远程主机,并确保它们的IP地址是真实的,而不是伪造的 然而,我注意到,对于我的许多“用户”(输入表单的人),尽管有上述配置,$\u服务器['REMOTE\u HOST']是空的(而对于大多数其他用户,它是非空的)。这是否意味着这些用户伪造了IP地址,或者这些用户仍然是诚实的普通用户?还有什么可以解释这一点呢?不是每个主机都有一个主机名:) 您可能想使用'REMOTE\u ADDR'只需

我已经激活了

HostnameLookups Double
在我的Apache2配置中,这样我就可以存储用户的远程主机,并确保它们的IP地址是真实的,而不是伪造的


然而,我注意到,对于我的许多“用户”(输入表单的人),尽管有上述配置,$\u服务器['REMOTE\u HOST']是空的(而对于大多数其他用户,它是非空的)。这是否意味着这些用户伪造了IP地址,或者这些用户仍然是诚实的普通用户?还有什么可以解释这一点呢?

不是每个主机都有一个主机名:)

您可能想使用
'REMOTE\u ADDR'

只需使用以下命令:

if(isset($_SERVER['REMOTE_HOST'])){//check
    $ip = $_SERVER['REMOTE_HOST'];
}else{
    $ip = $_SERVER['REMOTE_ADDR'];//else assign the real IP
}
echo $ip;

引用Apache文档:

值Double表示执行双反向DNS查找。就是, 执行反向查找后,将执行正向查找 根据这个结果执行。中至少有一个IP地址 正向查找必须与原始地址匹配。(在“tcpwrappers”中) 术语这称为偏执狂。)

我怀疑如果正向查找不匹配,那么字段将保留为空

正如@avnr所说,IP地址并不总是有PTR记录

在任何情况下,都不能确保IP没有被欺骗,它只是确保原始IP的DNS配置有一个PTR和一个记录匹配。

试试这个

$ip=getenv('REMOTE_ADDR');而不是$_SERVER['REMOTE_ADDR']


使用远程地址怎么样?嗯。。。我如何确保IP不会被欺骗?如果有必要的话,我已经在使用https了。你不能确保IP是真实的。通常,攻击者会欺骗以避免被您的服务器应答所欺骗,也可能欺骗IP以在您的服务器(以及其他人)的帮助下对该IP进行DOS。对于论坛帖子,他可能欺骗发送垃圾邮件并返回其真实地址(或代理地址)之后查看其“欺骗”发送的正确结果。
REMOTE\u HOST
server变量用于IP/主机名验证,而不是用于查找客户端的IP地址。是否使用
$REMOTE\u HOST=$\u server['REMOTE\u HOST']$_服务器['REMOTE_ADDR']
gethostbyaddr($\u服务器[“远程地址])
 getenv() is used to get the value of an environment variable in PHP
 $_SERVER is an array contains server variables created by the web server.