Ist es möglich, die IP-Adresse des Geräts mit einem Code zu erhalten?
Antworten
Zu viele Anzeigen?
RzR
Punkte
2944
Tyler Depies-Bobrowitz
Punkte
5
Immerhin kenne ich mich nur ein wenig mit Codesicherheit aus, daher könnte das etwas gehackt sein. Aber für mich ist dies die vielseitigste Möglichkeit:
package com.my_objects.ip;
import java.net.InetAddress;
import java.net.UnknownHostException;
public class MyIpByHost
{
public static void main(String a[])
{
try
{
InetAddress host = InetAddress.getByName("nameOfDevice or webAddress");
System.out.println(host.getHostAddress());
}
catch (UnknownHostException e)
{
e.printStackTrace();
}
} }
Ashish Kumar
Punkte
1046
// @NonNull
public static String getIPAddress() {
if (TextUtils.isEmpty(deviceIpAddress))
new PublicIPAddress().execute();
return deviceIpAddress;
}
public static String deviceIpAddress = "";
public static class PublicIPAddress extends AsyncTask {
InetAddress localhost = null;
protected String doInBackground(String... urls) {
try {
localhost = InetAddress.getLocalHost();
URL url_name = new URL("http://bot.whatismyipaddress.com");
BufferedReader sc = new BufferedReader(new InputStreamReader(url_name.openStream()));
deviceIpAddress = sc.readLine().trim();
} catch (Exception e) {
deviceIpAddress = "";
}
return deviceIpAddress;
}
protected void onPostExecute(String string) {
Lg.d("deviceIpAddress", string);
}
}
Raphaël Maguet
Punkte
61
Du kannst das machen
String stringUrl = "https://ipinfo.io/ip";
//String stringUrl = "http://whatismyip.akamai.com/";
// Instanziiere die RequestQueue.
RequestQueue queue = Volley.newRequestQueue(MainActivity.instance);
//String url ="http://www.google.com";
// Fordere eine String-Antwort von der bereitgestellten URL an.
StringRequest stringRequest = new StringRequest(Request.Method.GET, stringUrl,
new Response.Listener() {
@Override
public void onResponse(String response) {
// Zeige die ersten 500 Zeichen der Antwortzeichenfolge an.
Log.e(MGLogTag, "IP abrufen: " + response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
IP = "Das hat nicht funktioniert!";
}
});
// Füge die Anfrage zur RequestQueue hinzu.
queue.add(stringRequest);
venkat
Punkte
147
Bitte überprüfen Sie diesen Code... Mit diesem Code erhalten wir die IP-Adresse über das mobile Internet...
for (Enumeration en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements(); ) {
NetworkInterface intf = en.nextElement();
for (Enumeration enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements(); ) {
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress()) {
return inetAddress.getHostAddress().toString();
}
}
}
6 Stimmen
Vergessen Sie nicht, dass dies eine Sammlung der Größe N ist, und Sie können nicht davon ausgehen, dass N == ( 0 || 1 ). Mit anderen Worten, nehmen Sie nicht an, dass ein Gerät nur eine Möglichkeit hat, mit einem Netzwerk zu kommunizieren, und nehmen Sie nicht an, dass es überhaupt eine Möglichkeit zum Kommunizieren mit einem Netzwerk hat.
0 Stimmen
Verwandte: stackoverflow.com/questions/9481865/…
2 Stimmen
Nicht programmatische Version android.stackexchange.com/questions/2984/…
0 Stimmen
Du solltest es von einem externen Dienst bekommen ipof.in/txt ist ein solcher Dienst.
0 Stimmen
Ist es möglich, dies programmgesteuert in Android zu erhalten?
0 Stimmen
Siehe meine Antwort unter stackoverflow.com/questions/16730711/…