(作業中のPCの)自分のIPアドレスを取得できる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")
インストールすると、ライブラリをロードして1回の関数呼び出しを行うのと同じくらい簡単です...
library(ipify)
get_ip()
于 2017-05-26T04:13:10.877 に答える
3
@andrieは非常に素人の言葉でそれを説明しましたが、それは私たちがそれの機能を理解するのに大いに役立ったと確信しています。
したがって、そこから、他のパッケージをインストールせずに1つのライナーコードのみを共有します。
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 に答える