有谁知道能够检索自己的IP地址(您正在使用的PC)的R函数?这将非常有帮助!提前谢谢了。
问问题
10776 次
4 回答
36
system()
您可以向操作系统发出命令:
- 在 Windows 中,您可以使用
ipconfig
- 在 Linux 中,使用
ifconfig
例如,在 Windows 上尝试system()
使用参数调用以intern=TRUE
将结果返回给 R:
x <- system("ipconfig", intern=TRUE)
这将返回:
x
[1] ""
[2] "Windows IP Configuration"
[3] ""
[4] ""
[5] "Wireless LAN adapter Wireless Network Connection:"
[6] ""
[7] " Connection-specific DNS Suffix . : tbglondon.local"
[8] " Link-local IPv6 Address . . . . . : fe80::c0cb:e470:91c7:abb9%14"
[9] " IPv4 Address. . . . . . . . . . . : 10.201.120.184"
[10] " Subnet Mask . . . . . . . . . . . : 255.255.255.0"
[11] " Default Gateway . . . . . . . . . : 10.201.120.253"
[12] ""
[13] "Ethernet adapter Local Area Connection:"
[14] ""
[15] " Connection-specific DNS Suffix . : tbglondon.local"
[16] " Link-local IPv6 Address . . . . . : fe80::9d9b:c44c:fd4d:1c77%11"
[17] " IPv4 Address. . . . . . . . . . . : 10.201.120.157"
[18] " Subnet Mask . . . . . . . . . . . : 255.255.255.0"
[19] " Default Gateway . . . . . . . . . : 10.201.120.253"
[20] ""
[21] "Tunnel adapter Local Area Connection* 13:"
[22] ""
[23] " Media State . . . . . . . . . . . : Media disconnected"
[24] " Connection-specific DNS Suffix . : "
[25] ""
[26] "Tunnel adapter isatap.tbglondon.local:"
[27] ""
[28] " Media State . . . . . . . . . . . : Media disconnected"
[29] " Connection-specific DNS Suffix . : tbglondon.local"
[30] ""
[31] "Tunnel adapter Teredo Tunneling Pseudo-Interface:"
[32] ""
[33] " Media State . . . . . . . . . . . : Media disconnected"
[34] " Connection-specific DNS Suffix . : "
现在您可以使用grep
以下命令查找行IPv4
:
x[grep("IPv4", x)]
[1] " IPv4 Address. . . . . . . . . . . : 10.201.120.184"
[2] " IPv4 Address. . . . . . . . . . . : 10.201.120.157"
并仅提取 IP 地址:
z <- x[grep("IPv4", x)]
gsub(".*? ([[:digit:]])", "\\1", z)
"10.201.120.184" "10.201.120.157"
于 2013-01-16T11:46:40.703 回答
9
我最近创建了一个最小的包ipify.org
来做这件事。
使用很简单,可以使用devtools
和github安装。
library(devtools)
install_github("gregce/ipify")
一旦安装,它就像加载库和一个函数调用一样简单......
library(ipify)
get_ip()
于 2017-05-26T04:13:10.877 回答
3
虽然@andrie 用非常通俗的语言解释了它,但我相信它对我们理解它的功能有很大帮助。
所以从那里只共享一个行代码而不安装任何其他包。
gsub(".*? ([[:digit:]])", "\\1", system("ipconfig", intern=T)[grep("IPv4", system("ipconfig", intern = T))])
希望这会有所帮助!
于 2017-12-19T07:07:05.100 回答
-4
这将准确检索您想要的内容:
system('ipconfig getifaddr en0')
192.168.1.73
于 2016-04-26T18:03:44.527 回答