2013-01-16 8 views
15

क्या कोई भी ऐसे आर फ़ंक्शन के बारे में जानता है जो किसी के अपने आईपी पते (जिस पीसी पर आप काम कर रहे हैं) को पुनः प्राप्त करने में सक्षम है? यह बहुत उपयोगी होगा! अग्रिम में बहुत धन्यवाद।आर के भीतर से अपने आईपी पते को पुनः प्राप्त करने के लिए फंक्शन?

उत्तर

23

आप अपने ऑपरेटिंग सिस्टम के लिए एक system() आदेश जारी कर सकते हैं:

  • विंडोज में आप ipconfig
  • लिनक्स में उपयोग कर सकते हैं, का उपयोग ifconfig

उदाहरण के लिए, विंडोज पर साथ system() बुला की कोशिश परिणामों को वापस करने के लिए intern=TRUE तर्क:

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

अब आप IPv4 साथ लाइनों को खोजने के लिए grep उपयोग कर सकते हैं:

x[grep("IPv4", x)] 
[1] " IPv4 Address. . . . . . . . . . . : 10.201.120.184" 
[2] " IPv4 Address. . . . . . . . . . . : 10.201.120.157" 

और बस आईपी पते को निकालने के लिए:

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

यह retrieves बिल्कुल आप क्या चाहते हैं:

system('ipconfig getifaddr en0') 

192.168.1.73 
+0

आपका आदेश आर या सीएमडी विंडो में काम नहीं करता है (मेरी विंडो 7 वर्कस्टेशन पर)। क्या आप इसे पुनः परीक्षण कर सकते हैं। हो सकता है कि यह आपकी मशीन के लिए विशिष्ट हो? यह सिर्फ 'ipconfig' कमांड के लिए एक व्यापक सहायता पुस्तिका देता है। –

3

मैंने हाल ही में यह सही काम करने के लिए ipify.org का उपयोग करके एक न्यूनतम पैकेज बनाया है।

उपयोग आसान है, आप devtools और गीथब का उपयोग कर इंस्टॉल कर सकते हैं।

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

एक बार स्थापित, पुस्तकालय और एक समारोह कॉल लोड हो रहा है के रूप में अपनी के रूप में आसान ...

library(ipify) get_ip()

0

हालांकि @andrie बहुत आम आदमी की भाषा में यह बताया गया है और मुझे यकीन है कि यह मदद की कर रहा हूँ हमें इसकी कार्यक्षमता को समझने के लिए बहुत कुछ है।

तो वहां से केवल किसी अन्य पैकेज को इंस्टॉल किए बिना केवल एक लाइनर कोड साझा करना।

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

आशा है कि यह सहायक होगा!

संबंधित मुद्दे