मैं वर्तमान में कोड के माध्यम से Android Emulator का आईपी पता प्राप्त करना चाहता हूं। इसे कैसे प्राप्त किया जा सकता है?एंड्रॉइड एमुलेटर के आईपी पते को कैसे प्राप्त करें?
उत्तर
बस स्पष्ट करने के लिए: अपने ऐप के भीतर से, आप केवल एमुलेटर को 'लोकलहोस्ट' या 127.0.0.1 के रूप में संदर्भित कर सकते हैं।
वेब यातायात को आपकी विकास मशीन के माध्यम से भेजा जाता है, इसलिए एम्यूलेटर का बाहरी आईपी जो भी आपके प्रदाता द्वारा उस मशीन को आईपी सौंपा गया है। 10.0.2.2 को विकास मशीन हमेशा आपके डिवाइस से पहुंचा जा सकता है।
चूंकि आप केवल एमुलेटर के आईपी के बारे में पूछ रहे थे, तो आप क्या करने की कोशिश कर रहे हैं?
मैं इसके लिए आपको 100 बार अपनाना चाहता हूं। मैं यह नहीं समझ सका कि मेरा ऐप किसी अन्य स्थानीय सर्वर से कैसे बात कर सकता है जब तक कि मैं आपकी पोस्ट नहीं पढ़ता। धन्यवाद! – Spike
आप 10.0.2.2 से अपनी विकास मशीन तक कैसे पहुंच सकते हैं? मैंने पिंगिंग करने की कोशिश की लेकिन कुछ भी नहीं, तस्वीर [यहां] (http://i.stack.imgur.com/Yjv7W.jpg)। Devconf मशीन पिंग करने की कोशिश कर बाईं ओर दाईं ओर टर्मिनल-एमुलेटर पर ifconfig -app। लोकहोस्ट में कुछ भी नहीं देख सकता, कोई आसान परीक्षण? – hhh
@hhh आप JuiceSSH को आजमा सकते हैं: https://play.google.com/store/apps/details?id=com.sonelli.juicessh आप उल्लिखित आईपी या मेजबान के वास्तविक आईपी से अपने मेजबान तक पहुंच सकते हैं। दोनों प्रकार मेरे लिए काम करते हैं। –
:
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।
और 'android.permission.INTERNET' अनुमति को न भूलें –
यह आईपी 6 पता देता है, आईपी 4 कैसे प्राप्त करें? –
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;
}
आप IP अपने एमुलेटर करने के लिए सौंपा सही मायने में करना चाहते हैं:
adb shell
ifconfig eth0
जो तुम जैसे कुछ दे देंगे:
eth0: ip 10.0.2.15 mask 255.255.255.0 flags [up broadcast running multicast]
यह बहुत अच्छा था लेकिन यह पता मेरे पीसी से पिंग नहीं कर रहा है :( –
[लुइस] (https://stackoverflow.com/users/6066443/louise) ने कहा: * मैंने डेरेक विधि की कोशिश की। यह एडीबी खोल * के भीतर पिंग कर सकता है। – SmokeDispenser
मुझे यह त्रुटि 'adb shell' के बाद मिलती है: 'ifconfig: eth0: ऐसा कोई डिवाइस नहीं है क्यों? – awavi
आप अपने मेजबान कंप्यूटर के स्थानीय होस्ट का उल्लेख करने की जरूरत है , जैसे कि जब आप एमुलेटर क्लाइंट को उसी होस्ट पर चल रहे सर्वर से संपर्क करने के लिए चाहते हैं, तो मेजबान कंप्यूटर के लूपबैक इंटरफ़ेस को संदर्भित करने के लिए उपनाम 10.0.2.2 का उपयोग करें। एमुलेटर के नजरिए, स्थानीय होस्ट (127.0.0.1) से अपनी ही लूपबैक interface.More विवरण को दर्शाता है: http://developer.android.com/guide/faq/commontasks.html#localhostalias
उपयोग इस प्रक्रिया में अपने Android एमुलेटर के लिए 100% सही आईपी पते हो रही होगी
yoor एमुलेटर
adb शेल पर जाएं का आईपी पता हो और टाइप करने के लिए इस आदेश
adb shell
ifconfig eth0
इस आदेश चलाने के बाद मैं
आईपी हो रही है: 10.0.2.15
मास्क: 255.255.255.0
कौन सा मेरे लिए काम करता है। मैं नेटवर्किंग एप्लिकेशन के लिए भी काम कर रहा हूं।
शायद संबंधित [यहां] (http://stackoverflow.com/questions/7447221/how-to-connect-to-avd) और [यहां] (http://stackoverflow.com/questions/13217796/is- android-avds-फ़ायरवॉल-किसी भी तरह-अधिक-प्रतिबंधित करने वाली वास्तविक android-फ़ायरवॉल)। – hhh
@hhh दूसरा लिंक टूटा हुआ है। :) –
@ MuhamedHuseinbašić मुझे लगता है कि इस धागे ने दूसरे धागे में समस्या हल की है, इसलिए चीजों को सरल रखने के लिए इसे हटाने का फैसला किया। – hhh