【发布时间】:2021-01-01 08:00:19
【问题描述】:
我在 AWS 上有一个网站,最近我决定运行一个 php 函数来跟踪在哪里/谁在请求我的网站。我从 3 个私有 IP 地址收到对我主页的持久请求。它们相隔 20 秒,每 30 秒发生一次。
172.31.44.xxx
172.31.8.xxx
172.31.29.xx
私有 IP 如何请求我的网站?我无法确定连接的来源。
我正在使用这个 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'];
}
我的代码中是否有错误以正确检索 IP?或者还有其他我不知道的事情发生。让我知道你的想法,
谢谢!
编辑 - PHP $_SERVER 来自请求的响应
{
"array": {
"USER": "apache",
"HOME": "/usr/share/httpd",
"SCRIPT_NAME": "/index.php",
"REQUEST_URI": "/",
"QUERY_STRING": "",
"REQUEST_METHOD": "GET",
"SERVER_PROTOCOL": "HTTP/1.1",
"GATEWAY_INTERFACE": "CGI/1.1",
"REMOTE_PORT": "29208",
"SCRIPT_FILENAME": "/var/www/html/index.php",
"SERVER_ADMIN": "root@localhost",
"CONTEXT_DOCUMENT_ROOT": "/var/www/html",
"CONTEXT_PREFIX": "",
"REQUEST_SCHEME": "http",
"DOCUMENT_ROOT": "/var/www/html",
"REMOTE_ADDR": "172.31.29.19",
"SERVER_PORT": "80",
"SERVER_ADDR": "172.31.22.151",
"SERVER_NAME": "172.31.22.151",
"SERVER_SOFTWARE": "Apache/2.4.46 ()",
"SERVER_SIGNATURE": "",
"PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin",
"HTTP_ACCEPT_ENCODING": "gzip, compressed",
"HTTP_USER_AGENT": "ELB-HealthChecker/2.0",
"HTTP_CONNECTION": "close",
"HTTP_HOST": "172.31.22.151",
"proxy-nokeepalive": "1",
"UNIQUE_ID": "X@7byXAPCfpNYTyp8Hv5xAAAAAQ",
"FCGI_ROLE": "RESPONDER",
"PHP_SELF": "/index.php",
"REQUEST_TIME_FLOAT": 1609489353.920435,
"REQUEST_TIME": 1609489353
}
}
【问题讨论】:
-
回声'
; 'print_r($_SERVER);死;阵列上打印什么内容请检查是否找到 REMOTE_ADDR 后的第一步
-
您是否有任何健康检查设置,例如负载均衡器、路由 53?
-
我确实有一个负载均衡器和路由 53
-
没错,就是健康检查器
ELB-HealthChecker/2.0 -
这是健康检查器,它将确保负载均衡器可以与主机通信。它将在内部执行此操作,它将根据您的健康检查配置按计划运行。
标签: php amazon-web-services server