我正在使用boost::asio通过 TCP 编写服务器。我试图找到一种方法来阻止本地主机之外的连接。我唯一发现的是这个。有:
boost::asio::ip::host_name()
它返回“tomasz-lenovo-ideapad-Y530”(这是我机器的名称)。如何从中获取原始 ip(“127.0.0.1”或“localhost”)?
我正在使用boost::asio通过 TCP 编写服务器。我试图找到一种方法来阻止本地主机之外的连接。我唯一发现的是这个。有:
boost::asio::ip::host_name()
它返回“tomasz-lenovo-ideapad-Y530”(这是我机器的名称)。如何从中获取原始 ip(“127.0.0.1”或“localhost”)?
从服务给定连接的套接字对象。
std::cout << "Peer IP: " << socket.remote_endpoint().address().to_string() << std::endl;
仅供参考:如果你想阻止来自其他机器的任何连接,它足以监听 127.0.0.1 而不是监听其他接口。为此,您应该像这样创建接受器:
acceptor(io_service, ip::tcp::endpoint(ip::address::from_string("127.0.0.1"), "5555"));
这将仅在端口 5555 上侦听 127.0.0.1