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



我正在使用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'];

相关内容

  • 没有找到相关文章

最新更新