gpt4 book ai didi

http - 如何从 Julia 中的 Sockets.TCPSocket 对象获取客户端 IP 地址?

转载 作者:行者123 更新时间:2023-12-04 07:50:26 26 4
gpt4 key购买 nike

HTTP.jl 的文档中, HTTP.serve 函数有一个可选的关键字参数 tcpisvalid::Function (::TCPSocket) -> Bool它说它可以用来

check accepted connection before processing requests. e.g. to implement source IP filtering, rate-limiting, etc.


如何从 TCPSocket 获取客户端 IP 地址目的?

最佳答案

您可以使用功能 Sockets.getpeername .根据Sockets docs,函数签名是:

getpeername(sock::TCPSocket) -> (IPAddr, UInt16)
描述是:

Get the IP address and port of the remote endpoint that the given socket is connected to. Valid only for connected TCP sockets.


因此,例如,如果您使用以下代码运行您的简单服务器......
HTTP.serve(app, "127.0.0.1", 8081; tcpisvalid=sock -> begin
host, port = Sockets.getpeername(sock)
println("Request from... $host:$port")
true
end)
然后在一个单独的终端运行...
$ curl http://localhost:8081/
您的 Julia 服务器的输出将是...
Request from... 127.0.0.1:40958

关于http - 如何从 Julia 中的 Sockets.TCPSocket 对象获取客户端 IP 地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67015040/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com