客户端(sim卡)向服务器发送udp包,服务器这怎样获得远端电脑的真实ip和端口呢? 好像UDP数据包里就有真实ip和端口,不知道通过php怎么获得。 如果通过客户端来发送真实ip和端口信息,不大理想。 谢谢!
调用$connection->getRemoteIp() $connection->getRemotePort() 即可获得客户端的出口ip和端口。
如果客户端在局域网,只能获得客户端所在局域网的出口ip和端口,无法直接获得客户端局域网ip和端口。要想获得客户端所在局域网的内网ip和端口,只能客户端主动发送数据包告诉服务端。
如果不知道客户端真实IP地址和端口号,是不是就不能用下面这段代码了
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); socket_set_option($sock, SOL_SOCKET, SO_BROADCAST, 1); socket_sendto($sock, $data, strlen($data), 0, '143.203.215.51', 4948);
调用$connection->getRemoteIp() $connection->getRemotePort() 即可获得客户端的出口ip和端口。
如果客户端在局域网,只能获得客户端所在局域网的出口ip和端口,无法直接获得客户端局域网ip和端口。要想获得客户端所在局域网的内网ip和端口,只能客户端主动发送数据包告诉服务端。
如果不知道客户端真实IP地址和端口号,是不是就不能用下面这段代码了
$sock = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP);
socket_set_option($sock, SOL_SOCKET, SO_BROADCAST, 1);
socket_sendto($sock, $data, strlen($data), 0, '143.203.215.51', 4948);