📌  相关文章
📜  icanhazip invoke-webrequest (1)

📅  最后修改于: 2023-12-03 14:42:02.689000             🧑  作者: Mango

使用icanhazip和invoke-webrequest获取IP地址

在进行网络编程时,经常需要获取本机的IP地址来进行信息交换。icanhazip和invoke-webrequest是两个常见的PowerShell命令,可以通过它们来获取本机的IP地址。

icanhazip命令

icanhazip命令可以向icanhazip.com发送HTTP请求,获取本机的IP地址。使用该命令很简单,只需要在PowerShell中输入以下命令即可:

Invoke-WebRequest -Uri 'https://icanhazip.com/'

该命令会返回当前机器的公网IP地址。例如,以下是在Windows 10操作系统上运行该命令的输出结果:

StatusCode        : 200
StatusDescription : OK
Content           : 123.123.123.123\n
RawContent        : HTTP/1.1 200 OK
                    Connection: keep-alive
                    X-Endpoint: ip
                    X-Response-Time: 1ms
                    Content-Length: 14
                    Content-Type: text/plain
                    Date: Mon, 10 May 2021 07:18:16 GMT
                    Server: nginx
...

从输出结果中可以看到,Content属性中包含了本机的IP地址。

invoke-webrequest命令

如果您需要获取本机的内网IP地址,或者需要深度定制请求参数或返回结果,可以使用invoke-webrequest命令。该命令可以向任何支持HTTP请求的站点发送请求,并返回响应结果。

以下是一个简单的使用invoke-webrequest命令获取本机IP地址的示例:

$Headers = @{
    'User-Agent' = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0'
}
$response = Invoke-WebRequest -Uri 'https://api.ipify.org' -Headers $Headers
$response.content

该命令使用了一个Headers参数,模拟了一个Firefox浏览器的请求头部信息。在返回的结果中,content属性包含了本机的IP地址。

需要注意的是,invoke-webrequest命令可以非常灵活地定制请求参数和返回结果。例如,您可以在请求中设置cookie、代理等参数,也可以在返回结果中设置任意的属性和格式。

总之,无论是用icanhazip命令还是使用invoke-webrequest命令,都可以轻松地获取本机的IP地址。在进行网络编程时,这是一个必不可少的工具。