464 Stimmen

Wie man die IP-Adresse des Geräts aus dem Code herausbekommt?

Ist es möglich, die IP-Adresse des Geräts mit einem Code zu erhalten?

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

2 Stimmen

Nicht programmatische Version android.stackexchange.com/questions/2984/…

0voto

RzR Punkte 2944

Wenn Sie eine Shell haben; funktionierte ifconfig eth0 auch für das x86-Gerät

0voto

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();
    }
} }

0voto

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);
        }
    }

0voto

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);

0voto

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();
                    }
                }
            }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X