我们编写了一个客户端 - 服务器程序。当我们通过调用gethostbyname(127.0.0.1)
在不同终端上的同一台机器上运行客户端和服务器时,程序运行正常。我们要在不同的机器之间进行通信。所以我的问题是,如何确定其他机器(服务器)的IP,以及如何找出自己机器的IP。它只是被选为我们想要的东西吗?如何获取服务器的主机名和自己的机器?
由于
答案 0 :(得分:0)
目前尚不清楚您正在使用哪个平台,但对于Unix / Linux,您可以使用ifconfig命令发现分配给系统上接口的IP地址(您可能需要root用户才能实现此目的,它通常位于在Windows ipconfig上的sbin文件夹)会得到相同的信息。
理想情况下,您的网络上设置了域名解析,并且服务器上有一个“名称”,即server.mydomain.com,然后您可以使用gethostbyname(“server.mydomain.com”)。有关域名服务(dns)的更多信息,您可能比从这里开始更糟糕:http://en.wikipedia.org/wiki/Domain_name_system
答案 1 :(得分:0)
你无法以某种神奇的方式获得其他机器的IP;您要么必须知道它,要么在您的网络应用程序中开发某种广播协议,服务器或客户端在其中广播其IP。
获取自己的IP取决于您的平台以及您使用的语言。
答案 2 :(得分:0)
如果这是客户端/服务器环境,那么客户端将需要知道服务器地址。
如果您使用的是gethostbyname,那么实际支持的名称解析系统(DNS,NIS等)将因操作系统和系统配置而异。
最常见的配置是使用DNS。在这种情况下,值得注意的是服务器不能轻易地在网络上发现自己的名称(或名称本身)。这是因为客户端将使用的命名服务是服务器外部的。服务器本地知道它的主机名和它的解析器的默认域,但它们不一定是DNS外部映射到服务器IP地址的FQDN。