是否有人知道能够检索自己的IP地址的R功能(您正在使用的PC)?这将是非常有帮助的!非常感谢提前。
答案 0 :(得分:29)
您可以向操作系统发出system()
命令:
ipconfig
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"
答案 1 :(得分:5)
我最近使用ipify.org
创建了一个最小的包来完成这件事。
使用很简单,您可以使用devtools
和github进行安装。
library(devtools)
install_github("gregce/ipify")
安装完成后,就像加载库和一个函数调用一样简单......
library(ipify)
get_ip()
答案 2 :(得分:1)
虽然@andrie用非常外行的语言解释它,但我相信它对我们的功能有很大帮助。
所以从那里只共享一个单行代码而不安装任何其他包。
gsub(".*? ([[:digit:]])", "\\1", system("ipconfig", intern=T)[grep("IPv4", system("ipconfig", intern = T))])
希望这会有所帮助!
答案 3 :(得分:-2)
这将准确检索您想要的内容:
system('ipconfig getifaddr en0')
192.168.1.73