Android获取有线和无线(wifi)的IP地址

    /**
     * 获取IP
     *
     * @param context
     * @return
     */
    public static String getIP(Context context) {
        String ip = "0.0.0.0";
        ConnectivityManager connectivityManager = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo info = connectivityManager.getActiveNetworkInfo();
        int type = info.getType();
        if (type == ConnectivityManager.TYPE_ETHERNET) {
            ip = getEtherNetIP();
        } else if (type == ConnectivityManager.TYPE_WIFI) {
            ip = DeviceIpUtil.getDeviceIP(context);
        }
        return ip;
    }

    /**
     * 获取有线地址
     *
     * @return
     */
    public static String getEtherNetIP() {
        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()
                            && inetAddress instanceof Inet4Address) {
                        return inetAddress.getHostAddress().toString();
                    }
                }
            }
        } catch (SocketException ex) {
            Log.e("WifiPreference IpAddress", ex.toString());
        }
        return "0.0.0.0";
    }

    /**
     * 获取wifiIP地址
     *
     * @param context
     * @return
     */
    public static String getWifiIP(Context context) {
        android.net.wifi.WifiManager wifi = (android.net.wifi.WifiManager) context
                .getSystemService(android.content.Context.WIFI_SERVICE);
        WifiInfo wifiinfo = wifi.getConnectionInfo();
        int intaddr = wifiinfo.getIpAddress();
        byte[] byteaddr = new byte[] { (byte) (intaddr & 0xff),
                (byte) (intaddr >> 8 & 0xff), (byte) (intaddr >> 16 & 0xff),
                (byte) (intaddr >> 24 & 0xff) };
        InetAddress addr = null;
        try {
            addr = InetAddress.getByAddress(byteaddr);
        } catch (Exception e1) {
            e1.printStackTrace();
        }
        String mobileIp = addr.getHostAddress();
        return mobileIp;
    }
时间: 2024-07-29 19:02:12

Android获取有线和无线(wifi)的IP地址的相关文章

Android获取当前连接的wifi名称

首先AndroidMainfest.xml文件中添加权限: <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 获取WIFI信息状态的权限 --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 获取网络状态改变的

获取客户端、服务器、本地IP地址

//获取客户端.服务器.本地IP地址 public static string getIPAddress() { ////本地IP //string address = System.Net.Dns.GetHostAddresses(System.Net.Dns.GetHostName()).GetValue(2).ToString();//IP4 地址 ////本地电脑名称 //string addname = System.Net.Dns.GetHostName().ToString();

Py获取本机指定网卡的ip地址

前段时间需要批量修改服务器的配置文件,里面包含本机的IP地址,由于服务器有多块网卡并且配置多个ip地址,一开始想写shell脚本批量修改,但是既然现在正在学Python,何不研究下使用Python写,在网络上搜了相关文章,根据自己实际情况,便有了下面的脚本: 利用Python获取本机指定网卡的ip地址: #!/usr/bin/env python # -.- coding: utf-8 -.- # By Sandler import socket import fcntl import stru

android 获取手机里面的WIFI密码

获取手机里面的WIFI密码??刚看到的时候我也没明白这个有什么用,自己的手机不会不知道wifi密码吧,所以到现在我也没用到个这个功能 ,在这里权当记录一下,以备以后再找. 话说怎么获取WIFI密码还得从小米手机说起,记得小米推出了个Wifi密码共享的功能:比如在一个咖啡厅,只要一个人向服务员获取了密码,然后他打开wifi密码共享,那么其他人就可以直接连上wifi,而不需要再向服务员询问密码.但是后来安全什么的东西,最后这项功能好像也就无疾而终了.. 不过我们还是可以看一下小米是怎么实现的: 1.

无线AP忘记IP地址怎么办?介绍一款IP扫描软件

在无线网络应用中,有时经常遇到无线AP或无线路由的IP地址忘记了,无法用浏览器进入管理界面.常用的解决办法,按复位按钮,强行恢复出厂设置.如果仅仅是忘记了IP地址,也可以通过局域网IP扫描,找出无线AP或无线路由的IP地址.    Advanced IP Scanner是一款快速.强大.易于使用的局域网IP扫描器,它可以在几秒钟之内扫描出局域网计算机的相关信息.设定要扫描的IP位置范围.启动扫描功能,检测所有网络设备,包括Wi-Fi路由器和无线设备.1. 输入所需的IP地址范围(工具栏中的"IP

java如何获取其它用户登录的真是IP地址

获取其它用户的ip,可能会遇到了request.getRemoteAddr()获取的值为0:0:0:0:0:0:0:1,这是为什么呢,照道理讲,应该是127.0.0.1才对,为什么这个获取的值变成了ipv6了呢,而且我发现这种情况只有在服务器和客户端都在同一台电脑上才会出现(例如用localhost访问的时候才会出现),后来上网查了查原因,原来是/etc/hosts这个东西作怪(在windows上应该是C:\Windows\system32\drivers\etc\ hosts这个文件),只需要

javascript获取当前用户访问的宽带IP地址

<script src="http://pv.sohu.com/cityjson?ie=utf-8"></script><script> var ip=returnCitySN.cip;console.log("用户获得当前的宽带IP地址为:"+ip);</script> 原文地址:https://www.cnblogs.com/xieqijiang/p/10949953.html

[Android]获取当前WIFI的ip地址

配置清单文件加上权限 private String getLocalIpAddress() { int paramInt = ((WifiManager) getSystemService("wifi")).getConnectionInfo().getIpAddress(); return (paramInt & 0xFF) + "." + (0xFF & paramInt >> 8) + "." + (0xFF &

iOS--------获取当前连接的WiFi以及IP地址

导入头文件 #import <ifaddrs.h>#import <arpa/inet.h>#import <SystemConfiguration/CaptiveNetwork.h> + (nullable NSString*)getCurrentLocalIP { NSString *address = nil; struct ifaddrs *interfaces = NULL; struct ifaddrs *temp_addr = NULL; int succ