如何根据IP地址找到连接到其他设备的本地IP地址?

时间:2016-04-12 18:07:03

标签: powershell networking proxy

我的网络上有一台计算机,我想自动配置代理设置。我的Windows计算机将充当代理服务器。

为此,我可以使用命令远程访问第一台计算机,并告诉它使用其IP地址连接到我的主计算机。这就像:

PS> remote-cmd 192.168.0.101 "set-proxy-address 192.168.0.100:8888"

其中192.168.0.101是我正在尝试配置的计算机,而192.168.0.100是我在同一网络上的Windows机器的IP地址。

然而,就自动化而言,我有多个网络适配器和多个IP地址。为了这个例子,假设我的Windows机器有这两个IP地址:

  • 192.168.0.101
  • 10.195.97.50

然而,目标机器只在192 ...网络上,所以我需要给它我的192 ... ip地址,而不是10 ... one,作为代理服务器。

如何编写脚本(最好使用Powershell,但是像C#一样兼容Powershell的东西也会让我开心),根据远程机器的IP地址及其使用的路由,将自动确定正确的代理地址应该通过?

1 个答案:

答案 0 :(得分:2)

自Windows 10和Server 2012 R2起,Powershell似乎有一个Find-NetRoute命令行开关。

$routeInfo = Find-NetRoute -RemoteIPAddress 192.168.0.101

成功时,$routeInfo[0]是数据通过的接口,$routeInfo[1]是与远程IP地址匹配的路由。