繁体   English   中英

如何使用 BSD sockets 找到 ip 地址?

[英]How to find ip addresses with BSD sockets?

我在无线局域网上使用 BSD sockets。 我注意到我的服务器计算机的 ip 地址在我连接到它时偶尔会发生变化。 问题是我将 ip 地址作为文字字符串输入到我的代码中。 因此,每当它发生变化时,我必须将 go 放入代码并在那里进行更改。 如何更改代码以便它使用 ip 当时的任何代码? 这是服务器代码中的调用

if ((status = getaddrinfo("192.168.2.2", port, &hints, &servinfo)) != 0)

和客户端是一样的。 我试过 NULL 两边的地址,但客户端不会连接,只是给我一个“连接被拒绝”的错误。

谢谢你的帮助。

使用可以在主机文件或 DNS 中查找的域名,而不是 IP 地址。

命令行参数怎么样?

int main( inr argc, char* argv[] ) {
    const char* addr = "myfancyhost.domain.com"; /* default address */
    if ( argc > 1 ) {
        addr = argv[1]; /* explicit address */
    }
    if ((status = getaddrinfo(addr, ...

为您的服务器命名,并使用gethostbyname查找其地址(并且通常将服务器名称放入配置文件中,而不是对其进行硬编码,但如果您找不到配置文件,则硬编码默认值不会'不疼)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM