繁体   English   中英

获取发布数据的服务器IP

[英]geting server IP that post data

我正在使用以下代码将一些数据从一台服务器发布到另一台服务器:

  $data2 = http_build_query( array( 'desc' => $desc ) ); $options = array('http' => array( 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $data2 ) ); $context = stream_context_create($options); // post request $result = file_get_contents($payment_url, false, $context); $result = @json_decode($result, true); 

我想确保从正确的服务器发出POST消息后,因此我必须检查服务器IP是否发布了该数据。 但是$ _SERVER ['SERVER_ADDR']给我错误的IP(实际上是给我目标服务器的IP,而不是发布服务器的IP)。

在将数据发布到的服务器上,可以使用$_SERVER['REMOTE_ADDR']获得发出请求的设备的ip地址,如下所示:

$ip_address = $_SERVER['REMOTE_ADDR'];

if($ip_address == 'Your.Server.Ip.Address.'){

    // do stuff

} else {

    // deny request

}

当前正在使用的SERVER_ADDR变量列出了执行脚本的服务器的IP地址。 有关php的$ _SERVER变量的更多信息,请查阅文档,因为它们可以很好地解释所有内容。

如果您宁愿在服务器级别处理此问题,另一种选择是通过ip地址限制对脚本所在目录的访问。 本文对此进行了详尽的解释(如果您使用的是Apache)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM