如何获取连接到基于Rebol3的服务器的客户端的远程IP地址?

5
我正在使用这些基本的TCP测试脚本进行游戏,并想知道:“如何获取连接到服务器的客户端的IP地址?” 有什么想法吗? 我尝试在服务器端探测客户端子端口,但它不显示远程IP。 有人可以给我收集该信息的提示吗? 我知道在Rebol2中如何工作,但我不熟悉Rebol3端口模型。
2个回答

4

您可以在客户端端口上调用查询来获取该信息!这将返回一个带有远程IP远程端口字段的对象。

以下是一个简单的示例,演示了一个简单的服务,在端口9090上侦听连接并打印连接到该服务的客户端的地址:

rebol []

awake-server: func [event /local client info] [
    if event/type = 'accept [
        client: first event/port
        info: query client
        print ajoin ["Client connected: " info/remote-ip ":" info/remote-port]
        close client
    ]
]

serve: func [endpoint /local listen-port] [
    listen-port: open endpoint
    listen-port/awake: :awake-server
    wait listen-port
]

serve tcp://:9090

1
系统/标准/网络信息对象包括两个值 - 本地IP和远程IP。我不确定它们是否已设置。
尝试使用系统/标准/网络信息/远程IP,如果其中不包含任何内容,则建议提交错误报告。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接