我正在使用websocket并试图与我的自定义PHP应用程序和Mysql数据库合并。当用户连接到服务器时,在数据库I中存储IP、ClientID和用户名。这些信息将在用户与websocket服务器断开连接或发送消息时使用。我用运行server.php server.php
服务器页面为https://github.com/Flynsarmy/PHPWebSocket-Chat/blob/master/server.php
如上所述,我将必要的信息存储在Mysql数据库中,以识别哪些用户发送消息,断开连接和连接。
因此,我需要识别我自己的机器IP,以便与各种客户机进一步识别。所以当我尝试使用
<?php
echo $_SERVER["REMOTE_ADDR"];
在server.php 。它给出了一个错误,说undefined
你没有。
WebSockets不处理web请求。$_SERVER
超全局变量没有被填充,因为填充它没有意义。
直接处理套接字连接
您很可能想要使用socket_getsockname()
请尝试一下,
var_dump($_SERVER);
并检查它是否打印…[remote_addr] => .......
但如果你是客户的IP,作为PHP开发人员,我使用以下代码
$ip=NULL;
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'];