在没有本地静态 IP 的情况下连接本地计算机
本文关键字:情况下 连接 计算机 静态 IP | 更新日期: 2023-09-27 18:32:16
我有3台PC,一台是服务器,另一台是客户端。客户端通过输入服务器本地 IP 连接到服务器。一切正常,但是当路由器重新启动并且服务器被分配不同的本地IP时,就会出现问题。现在,需要在客户端中再次输入服务器的IP地址。我可以通过使用本地静态 IP 来解决此问题,但是是否可以在不设置本地静态 IP 的情况下进行连接?
编辑:使用 TCP 套接字。
使用主机名连接到远程计算机,而不是其 IP 地址。不过,您将不得不依赖DNS查找。
出现您的问题是因为您使用路由器的DHCP功能。DHCP的D代表"动态",因此IP地址在某些情况下可能会更改。
最简单的解决方案是"不使用DHCP"。
[解决方案细节]
为电脑分配固定 IP 地址,并使用该 IP 地址在电脑之间进行访问。
通常,路由器使用从192.168.1.1到192.168.1.255范围内的本地IP地址,路由器本身使用192.168.1.1。
您可以分别为 3 台 PC 使用 IP 地址 192.168.1.2、192.168.1.3和 192.168.1.4。
你可以做的一件事,你如何给服务器一个唯一的端点,比如
http://<server>/isthisme
然后,您只需遍历网络中的所有IP地址,然后尝试到达该端点。它返回的那个200
是你的服务器。
要获取 IP 有点复杂,您首先需要获取自己的 IP,然后在上面使用子网掩码,最后您可以通过以下方式进行操作:
for (int p1 = 1; p1 < netmask[0]; p1++) {
for (int p2 = 1; p2 < netmask[1]; p2++) {
for (int p3 = 1; p3 < netmask[2]; p3++) {
for (int p4 = 1; p4 < netmask[3]; p4++) {
var ip = new IPAdress(p1, p2, p3, p4);
if (trytoreach(ip)) {
return ip;
}
}
}
}
}
这是你可以走的一种方式。它没有优化,所以随意^^
这是方法 https://gist.github.com/DerKnerd/ff9c34087955efce0970 的要点。只是您需要弄清楚的带有子网掩码的部分。我不保证它会起作用。