如何在PHP websocket服务器中使用$ _SERVER [“REMOTE_ADDR”]

时间:2015-07-28 11:39:55

标签: php websocket

我正在使用websocket并尝试与我的自定义PHP应用程序和Mysql数据库合并。在数据库I中,当用户连接到服务器时,存储IP,ClientID和用户名。当用户从websocket服务器断开连接或发送消息时,将使用这些信息。我用 php server.php

运行server.php

服务器页面为https://github.com/Flynsarmy/PHPWebSocket-Chat/blob/master/server.php

如上所述,我在Mysql数据库中存储了必要的信息,以识别哪些用户发送消息,断开连接和连接。

因此,我需要确定自己的机器IP,以便与各种客户进一步识别。所以当我尝试使用

<?php 
    echo $_SERVER["REMOTE_ADDR"];

在server.php中。它给出了一个错误,说明未定义。

2 个答案:

答案 0 :(得分:1)

你没有。

WebSockets不处理Web请求。 $_SERVER超全局不会被填充,因为填充它是没有意义的。

直接处理套接字连接。

您最有可能想要使用socket_getsockname()

答案 1 :(得分:0)

请试试这个,

var_dump($_SERVER);

并检查是否打印... [REMOTE_ADDR] =&gt; .......

但是,如果你是在客户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'];