当我在localhost上侦听端口时,Windows将弹出一个对话框,用户必须将我的程序添加到防火墙例外列表中。这很烦人,需要管理员权限,用户可能没有。
为什么Windows会为环回连接(127.0.0.1)执行此操作,是否有一些技巧可以防止这种情况发生?
答案 0 :(得分:4)
答案是指定:
IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Loopback, Port);
而不是
IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Any, Port);
用于监听套接字。乍一看,这似乎可以防止任何防火墙警告,并且不需要将任何规则添加到防火墙。但我必须做一些更广泛的测试,以确保它适用于所有Windows配置。
答案 1 :(得分:-2)
这样做是为了防止人们做坏事,如果一个程序通过localhost访问某些东西,它可能会以比通过非localhost这样做更高的权限执行任务。
示例:
没有办法避免弹出窗口,否则会有什么用呢?如果您的程序具有管理权限,则可以添加防火墙例外规则,从而阻止此弹出窗口。