Jun*_*eed 77 windows command-line ip
有没有一个命令可以让我找到我的路由器的外部 IP 或我的 NAT\DSL 路由器等,而无需访问 whatsmyip.net 或类似的。
jfs*_*jfs 140
您可以使用 DNS 请求而不是 HTTP 请求来找出您的公共 IP:
C:\> nslookup myip.opendns.com. resolver1.opendns.com
Run Code Online (Sandbox Code Playgroud)
它使用resolver1.opendns.comdns 服务器将神奇的myip.opendns.com.主机名解析为您的IP 地址。(注意:.查找的尾随可防止附加搜索域,这可能会产生不正确的结果。)
Unix版本:
$ dig +short myip.opendns.com @resolver1.opendns.com
Run Code Online (Sandbox Code Playgroud)
aki*_*ira 43
curl从http://curl.haxx.se/download.html获取你自己的副本,然后就
curl "http://myexternalip.com/raw"
Run Code Online (Sandbox Code Playgroud)
或使用powershell:
$wc = new-object System.Net.WebClient
$wc.DownloadString("http://myexternalip.com/raw")
Run Code Online (Sandbox Code Playgroud)
(免责声明:http : //myexternalip.com是我创建的)
nhi*_*kle 17
没有内置命令可以执行此操作。部分问题在于,当您通过路由器连接到 Internet 时,您的网络硬件并未直接连接到 Internet,因此您的系统没有专门分配 IP。如果您使用反向代理,在某些情况下您甚至可能拥有多个外部 IP,因为设置了许多公司网络。最好的办法可能是创建一个脚本来查询whatismyip.org,或者尝试查找是否已经存在。
(作为提示,whatismyip.org 比大多数其他解决方案更可取,因为它仅以纯文本形式返回您的 IP - 没有多余的文本、链接、图像或其他垃圾。在自定义脚本中使用比大多数解决方案要容易得多其他 IP 检测站点。)
小智 9
这很好用,我在检查客户端计算机连接时主要将它与 psexec 一起使用。
nslookup myip.opendns.com resolver1.opendns.com
Run Code Online (Sandbox Code Playgroud)
创建一个名为的文件并将ip.vbs以下内容复制到其中:
Option Explicit
Dim http : Set http = CreateObject( "MSXML2.ServerXmlHttp" )
http.Open "GET", "http://icanhazip.com", False
http.Send
Wscript.Echo http.responseText 'or do whatever you want with it
Set http = Nothing
Run Code Online (Sandbox Code Playgroud)
执行使用
C:\>cscript ip.vbs
Run Code Online (Sandbox Code Playgroud)
正如 nhinkle指出的那样,最好选择一个只返回 IP 而不是 HTML + 广告等的站点,例如:
(来源:原http://externip.com/about)
几个月前我制作了这个批处理脚本来做到这一点:
@echo off
:: WhatIsMyIP.cmd - returns public IP address
:: requires: wget.exe
if [%1]==[-h] goto :HELP
if [%1]==[--help] goto :HELP
if [%1]==[/?] goto :HELP
wget -q -O %temp%\MyIP http://www.whatismyip.com/automation/n09230945.asp
for /f "delims= " %%G in (%temp%\myip) do set PublicIP=%%G & del %temp%\MyIP
echo. & echo Your public IP address is %PublicIP% & echo.
if [%1]==[--clip] echo %PublicIP% | clip
goto :EOF
:HELP
echo. & echo Usage: whatismyip [--clip] & echo.
goto :EOF
:EOF
Run Code Online (Sandbox Code Playgroud)
它为您提供了将 IP 地址放入剪贴板的选项,并设置了一个环境变量 - %PublicIP%.
更简单的方法:
现在,我只是这样做:
curl icanhazip.com
Run Code Online (Sandbox Code Playgroud)
或者...
curl icanhazip.com | clip
Run Code Online (Sandbox Code Playgroud)
...将当前的公共 IP 地址放入剪贴板。
你需要cURL。
使用 Powershell 3.0(Windows 7 默认为 2.0),您可以使用 Invoke-WebRequest
对于 IPv4:
$tmp =Invoke-WebRequest -URI http://myip.dnsomatic.com/
$tmp.Content
Run Code Online (Sandbox Code Playgroud)
对于 IPv6:
$tmp =Invoke-WebRequest -URI http://myexternalip.com/raw
$tmp.Content
Run Code Online (Sandbox Code Playgroud)
如果您想用它做一些特定的事情,这将为您提供一个可以使用的变量。我实际上正在使用它来构建一个脚本来定期上传我的路由器的动态 IP,定期让另一台机器测试与它的通信,然后使用最新的 IP 更新 DNS(如果它已更改),以便我可以从任何地方访问我的设备使用名称,而不必不断追查 IP。
当然 - 随着站点的变化或其输出的变化,您需要相应地更新它。:)
| 归档时间: |
|
| 查看次数: |
303066 次 |
| 最近记录: |