2013-01-16 2 views
15

누구든지 자신의 IP 주소 (작업중인 PC의)를 검색 할 수있는 R 기능을 알고 있습니까? 그것은 매우 도움이 될 것입니다! 미리 감사드립니다. 와 system()를 호출하려고R에서 자신의 IP 주소를 검색하는 기능?

윈도우에서
  • 리눅스에서
  • ipconfig를 사용하여 Windows에서, 예를 들어 ifconfig

사용

답변

23

당신은 당신의 운영 시스템에 system() 명령을 실행할 수 있습니다 인수 intern=TRUE을 사용하여 결과를 R로 반환합니다.

,073,210

이 반환 : 이제

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 . : "        

IPv4로 라인을 찾기 위해 grep를 사용할 수 있습니다

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" 
+4

및 유닉스 계열의 시스템에서'ifconfing' ... – agstudy

+0

@agstudy 고맙습니다. 답변 감사합니다 – Andrie

+0

정말 고마워요! – rdatasculptor

-1

이를 검색을 정확히 원하는 것 :

system('ipconfig getifaddr en0') 

192.168.1.73 
+0

R 또는 CMD 창 (내 Window 7 워크 스테이션)에서 명령이 작동하지 않습니다. 다시 테스트 해 주실 수 있겠습니까? 그것은 귀하의 기계에만 해당 될 수 있습니까? 'ipconfig' 명령에 대한 광범위한 도움말을 반환합니다. –

3

최근이 정확한 것을 수행하기 위해 ipify.org을 사용하여 최소 패키지를 만들었습니다.

사용법은 간단합니다. devtools 및 github을 사용하여 설치할 수 있습니다.

library(devtools) install_github("gregce/ipify")

@andrie 매우 평신도 언어로 설명하지만

한 번 라이브러리와 하나의 함수 호출을로드로서의 쉽게 설치 ...

library(ipify) get_ip()

0

그리고 난 그것이 도움이 확신 우리는 그것의 기능을 이해하기 위해 많이.

다른 패키지를 설치하지 않고 하나의 라이너 코드 만 공유합니다.

gsub(".*? ([[:digit:]])", "\\1", system("ipconfig", intern=T)[grep("IPv4", system("ipconfig", intern = T))]) 

희망이 있으면 도움이 될 것입니다.

관련 문제