2009-11-12 12 views
57

मैं वर्तमान में कोड के माध्यम से Android Emulator का आईपी पता प्राप्त करना चाहता हूं। इसे कैसे प्राप्त किया जा सकता है?एंड्रॉइड एमुलेटर के आईपी पते को कैसे प्राप्त करें?

+1

शायद संबंधित [यहां] (http://stackoverflow.com/questions/7447221/how-to-connect-to-avd) और [यहां] (http://stackoverflow.com/questions/13217796/is- android-avds-फ़ायरवॉल-किसी भी तरह-अधिक-प्रतिबंधित करने वाली वास्तविक android-फ़ायरवॉल)। – hhh

+0

@hhh दूसरा लिंक टूटा हुआ है। :) –

+1

@ MuhamedHuseinbašić मुझे लगता है कि इस धागे ने दूसरे धागे में समस्या हल की है, इसलिए चीजों को सरल रखने के लिए इसे हटाने का फैसला किया। – hhh

उत्तर

119

बस स्पष्ट करने के लिए: अपने ऐप के भीतर से, आप केवल एमुलेटर को 'लोकलहोस्ट' या 127.0.0.1 के रूप में संदर्भित कर सकते हैं।

वेब यातायात को आपकी विकास मशीन के माध्यम से भेजा जाता है, इसलिए एम्यूलेटर का बाहरी आईपी जो भी आपके प्रदाता द्वारा उस मशीन को आईपी सौंपा गया है। 10.0.2.2 को विकास मशीन हमेशा आपके डिवाइस से पहुंचा जा सकता है।

चूंकि आप केवल एमुलेटर के आईपी के बारे में पूछ रहे थे, तो आप क्या करने की कोशिश कर रहे हैं?

+6

मैं इसके लिए आपको 100 बार अपनाना चाहता हूं। मैं यह नहीं समझ सका कि मेरा ऐप किसी अन्य स्थानीय सर्वर से कैसे बात कर सकता है जब तक कि मैं आपकी पोस्ट नहीं पढ़ता। धन्यवाद! – Spike

+0

आप 10.0.2.2 से अपनी विकास मशीन तक कैसे पहुंच सकते हैं? मैंने पिंगिंग करने की कोशिश की लेकिन कुछ भी नहीं, तस्वीर [यहां] (http://i.stack.imgur.com/Yjv7W.jpg)। Devconf मशीन पिंग करने की कोशिश कर बाईं ओर दाईं ओर टर्मिनल-एमुलेटर पर ifconfig -app। लोकहोस्ट में कुछ भी नहीं देख सकता, कोई आसान परीक्षण? – hhh

+0

@hhh आप JuiceSSH को आजमा सकते हैं: https://play.google.com/store/apps/details?id=com.sonelli.juicessh आप उल्लिखित आईपी या मेजबान के वास्तविक आईपी से अपने मेजबान तक पहुंच सकते हैं। दोनों प्रकार मेरे लिए काम करते हैं। –

25
इस तरह

:

public String getLocalIpAddress() { 
    try { 
     for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { 
      NetworkInterface intf = en.nextElement(); 
      for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) { 
       InetAddress inetAddress = enumIpAddr.nextElement(); 
       if (!inetAddress.isLoopbackAddress()) { 
        return inetAddress.getHostAddress().toString(); 
       } 
      } 
     } 
    } catch (SocketException ex) { 
     Log.e(LOG_TAG, ex.toString()); 
    } 
    return null; 
} 

चेक अधिक जानकारी के लिए डॉक्स: NetworkInterface

+4

और 'android.permission.INTERNET' अनुमति को न भूलें –

+2

यह आईपी 6 पता देता है, आईपी 4 कैसे प्राप्त करें? –

3
public String getLocalIpAddress() { 

    try { 
     for (Enumeration <NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { 
      NetworkInterface intf = en.nextElement(); 
      for (Enumeration <InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) { 
       InetAddress inetAddress = enumIpAddr.nextElement(); 
       if (!inetAddress.isLoopbackAddress()) { 
        return inetAddress.getHostAddress().toString(); 
       } 
      } 
     } 
    } catch (SocketException ex) { 
     Log.e(LOG_TAG, ex.toString()); 
    } 
    return null; 
} 
28

आप IP अपने एमुलेटर करने के लिए सौंपा सही मायने में करना चाहते हैं:

adb shell 
ifconfig eth0 

जो तुम जैसे कुछ दे देंगे:

eth0: ip 10.0.2.15 mask 255.255.255.0 flags [up broadcast running multicast] 
+0

यह बहुत अच्छा था लेकिन यह पता मेरे पीसी से पिंग नहीं कर रहा है :( –

+0

[लुइस] (https://stackoverflow.com/users/6066443/louise) ने कहा: * मैंने डेरेक विधि की कोशिश की। यह एडीबी खोल * के भीतर पिंग कर सकता है। – SmokeDispenser

+0

मुझे यह त्रुटि 'adb shell' के बाद मिलती है: 'ifconfig: eth0: ऐसा कोई डिवाइस नहीं है क्यों? – awavi

7

आप अपने मेजबान कंप्यूटर के स्थानीय होस्ट का उल्लेख करने की जरूरत है , जैसे कि जब आप एमुलेटर क्लाइंट को उसी होस्ट पर चल रहे सर्वर से संपर्क करने के लिए चाहते हैं, तो मेजबान कंप्यूटर के लूपबैक इंटरफ़ेस को संदर्भित करने के लिए उपनाम 10.0.2.2 का उपयोग करें। एमुलेटर के नजरिए, स्थानीय होस्ट (127.0.0.1) से अपनी ही लूपबैक interface.More विवरण को दर्शाता है: http://developer.android.com/guide/faq/commontasks.html#localhostalias

12

उपयोग इस प्रक्रिया में अपने Android एमुलेटर के लिए 100% सही आईपी पते हो रही होगी

yoor एमुलेटर

adb शेल पर जाएं का आईपी पता हो और टाइप करने के लिए इस आदेश

adb shell 
ifconfig eth0 

enter image description here

इस आदेश चलाने के बाद मैं

आईपी हो रही है: 10.0.2.15

मास्क: 255.255.255.0

कौन सा मेरे लिए काम करता है। मैं नेटवर्किंग एप्लिकेशन के लिए भी काम कर रहा हूं।

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