精华内容
下载资源
问答
  • 获取手机WiFi Ip地址

    千次阅读 2016-02-22 21:28:12
    本文主要讲述如何获取手机WiFiip地址

    
    
    如何获取手机WiFi的ip地址,我就直接贴代码吧:

    public class MainActivity extends AppCompatActivity {
    
        private TextView tv;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
    
            tv=(TextView)findViewById(R.id.tv1);
            //get wifi ip
            WifiManager wm = (WifiManager)getSystemService(Context.WIFI_SERVICE);
            if(wm.isWifiEnabled()){
                System.out.println("wifi is open");
                WifiInfo wifiInfo= wm.getConnectionInfo();
                String ip=intToIp(wifiInfo.getIpAddress());
                tv.setText(ip);
            }
            else {
                tv.setText("wifi is closed");
            }
        }<pre name="code" class="java">    //wifi:转换ip
        private String intToIp(int i)  {
            String temp;
            temp= (i & 0xFF)+ "." + ((i >> 8 ) & 0xFF) + "." + ((i >> 16 ) & 0xFF) +"."+((i >> 24 ) & 0xFF );
            return temp;
        }
    }
     Manifest.xml需要加权限: 
    

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

    运行就能得出ip地址了。


    展开全文
  • Android获取wifiip地址

    万次阅读 2021-02-07 11:23:30
    博客来源: 突发奇想获取IP的地址进行搞事,然后记录一下获取设备的ip地址,话不多说,硬核开整

    博客来源:

    突发奇想获取IP的地址进行搞事,然后记录一下获取设备的ip地址,话不多说,硬核开整

    要申请的权限

    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
    <uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>

     

    java代码的方法

     /**
         * 检查网络是否可用
         *
         * @param paramContext
         * @return
         */
        public static boolean checkEnableWifi(Context paramContext) {
            @SuppressLint("WrongConstant") NetworkInfo localNetworkInfo = ((ConnectivityManager) paramContext.getSystemService("connectivity")).getActiveNetworkInfo();
            if ((localNetworkInfo != null) && (localNetworkInfo.isAvailable()))
                return true;
            return false;
        }
    
        /**
         * 获取当前ip地址
         *
         * @param context
         * @return
         */
        public static String getLocalIpAddress(Context context) {
            try {
                WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
                WifiInfo wifiInfo = wifiManager.getConnectionInfo();
                int i = wifiInfo.getIpAddress();
                return int2ip(i);
            } catch (Exception ex) {
                return "0";
            }
        }
    
        /**
         * 将ip的整数形式转换成ip形式
         *
         * @param ipInt
         * @return
         */
        public static String int2ip(int ipInt) {
            StringBuilder sb = new StringBuilder();
            sb.append(ipInt & 0xFF).append(".");
            sb.append((ipInt >> 8) & 0xFF).append(".");
            sb.append((ipInt >> 16) & 0xFF).append(".");
            sb.append((ipInt >> 24) & 0xFF);
            return sb.toString();
        }

     

     

     

     

     

    展开全文
  • 主要介绍了Android开发实现在Wifi获取本地IP地址的方法,涉及Android编程Wifi的调用及IP地址获取与转换相关操作技巧,需要的朋友可以参考下
  • WIFI获取本地IP地址

    千次阅读 2013-03-31 11:51:10
    WifiManager类提供了对设备Wifi功能的管理,包括Wifi开关的打开和关闭,IP地址获取等等,早期的Android版本甚至支持对于IP的设置。在这里仅介绍其简单的一个小应用——获取IP地址。   首先先添加Uses-...

    作者:张佳棣


    代码核心介绍:

    WifiManager类提供了对设备Wifi功能的管理,包括Wifi开关的打开和关闭,IP地址获取等等,早期的Android版本甚至支持对于IP的设置。在这里仅介绍其简单的一个小应用——获取IP地址。

     

    首先先添加Uses-Permission:CHANGE_WIFI_STATE,WAKE_LOCK和ACCESS_WIFI_STATE。代码如下(AndroidManifest.xml):


    [html]  view plain copy
    1. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>  
    2. <uses-permission android:name="android.permission.WAKE_LOCK"/>  
    3. <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>  


    [java]  view plain copy
    1. private String getIp(){  
    2.     WifiManager wm=(WifiManager)getSystemService(Context.WIFI_SERVICE);  
    3.     //检查Wifi状态  
    4.     if(!wm.isWifiEnabled())  
    5.         wm.setWifiEnabled(true);  
    6.     WifiInfo wi=wm.getConnectionInfo();  
    7.     //获取32位整型IP地址  
    8.     int ipAdd=wi.getIpAddress();  
    9.     //把整型地址转换成“*.*.*.*”地址  
    10.     String ip=intToIp(ipAdd);  
    11.     return ip;  
    12. }  
    13. private String intToIp(int i) {  
    14.     return (i & 0xFF ) + "." +  
    15.     ((i >> 8 ) & 0xFF) + "." +  
    16.     ((i >> 16 ) & 0xFF) + "." +  
    17.     ( i >> 24 & 0xFF) ;  
    18. }  

    原文地址:点击打开链接

    展开全文
  • 现在博主在上大三,正在学习一些计算机网络的一些概念,知道了局域网ip和网关ip不同的概念,当时还纳了闷了2的32...手机在连入局域网的WiFi的时候,会自动获取IP地址信息到本机,然后可以通过“设置→系统→关于手机→

    现在博主在上大三,正在学习一些计算机网络的一些概念,知道了局域网ip和网关ip不同的概念,当时还纳了闷了2的32次方好像不咋够用啊,原来是这个样子。

    由于之前学过一段时间的Android,同时又在上Android开发的个性课,于是就自然萌发出了一个自己通过编写Android程序获取ip相关信息的小程序。

    手机在连入局域网的WiFi的时候,会自动获取IP地址信息到本机,然后可以通过“设置→系统→关于手机→状态信息→IP地址”查看当前的IP地址,得到的应该是IPv6的,不过下方的如“192.168.1.102”就是对应的IPv4的地址,而如果通过4G流量上网的话,那么得到的直接就是IPv4的。

    而网关ip也可以说是外网ip则需要与互联网有过信息交流后才能知道,所以要通过一次网络连接才可以,而不少网站(诸如:http://city.ip138.com/city0.asphttp://ip.taobao.com/service/getIpInfo2.php?ip=myip)也提供了查询本机网关ip的服务,只要直接从浏览器输入地址即可得到相关信息。

    然而博主要说的是这是诸如2011年、2014年那时候的说法,在目前的实践中已经不太可行了,就比如ip138那个,键入后其实会被链接到http://1212.ip138.com/ic.asp,故当前的话应该将查询网址设为1212的,至于淘宝的那个,如果用电脑浏览器打开的话, 是可以获取到信息的,并且还很详细,可是如果用手机(博主用的是UC浏览器,Android),会出现一个下载php文件的提示,浏览器无法直接解析php文件,所以这种方法也是不可行的,同时博主自己也实际测试了一下发现确实不可以,至少目前我的不可以(Android5.1 华为)。

    于是在网上查找并参考了相关资料之后,思路也就基本有了。说实话,现在的网络真的实在是太便捷,真的是很大的一个助手,各种博客论坛开源项目git的存在,程序员的日子已经相对而言很好了。

    然而在代码初次编写后发现程序可以获取本机IP、MAC地址,这很容易,直接获取就是了,然而网关IP的获取则崩溃了。

    后来发现这个网络操作应该放在子线程来进行,应该通过回调来通知主线程更新UI。
    然而修改完成后发现还是无法成功,最后发现是他喵的没有申请android.permission.INTERNET权限。

    然而功夫不负有心人,最终还是完成了,嘻嘻。

    起初我是想把获取IP信息放在一个类里面通过提供一些方法来实现模块的复用和松耦合,最后发现在网关IP这里失败了,由于要进行异步操作,更新UI操作,无法实现代码独立。
    所以最终做成了这个样子:


    这里是主Activity代码

    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.support.v7.app.AppCompatActivity;
    import android.text.Html;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    
    import org.json.JSONObject;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    
    import okhttp3.OkHttpClient;
    import okhttp3.Request;
    import okhttp3.Response;
    
    public class MainActivity extends AppCompatActivity {
        static final String TAG = "MainActivity";
        public static final int UPDATE_TEXT = 1;
        Button mButton;
        TextView textview;
        //通过Handler实现对主线程UI更新的回调
        private Handler mHandler = new Handler(){
            @Override
            public void handleMessage(Message msg) {
                switch (msg.what){
                    case UPDATE_TEXT:
                        IPInfomation ipinfo = new IPInfomation(MainActivity.this);
                        String ipadd = ipinfo.getWIFILocalIpAdress();
                        String macadd = ipinfo.getMacAddress();
                        //String hostip = ipinfo.getHostAddress();
                        Log.i(TAG, "onClick: sfafdasf");
                        //textview.setText("内网ip为:"+ipadd+"\nMAC地址为:"+macadd);
                        String hostip = (String) msg.obj;
                        //String ipinfo = (String)textview.getText();
                        textview.setText("内网ip为:"+ipadd+"\nMAC地址为:"+macadd+"\n网关地址为:"+hostip);
                        break;
                    default:
                        break;
                }
            }
        };
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            mButton = (Button) findViewById(R.id.button);
            textview = (TextView) findViewById(R.id.textView);
            mButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    //创建一个新的工作线程用来执行网络操作,这里用到了OKHttp开源库
                    new Thread(new Runnable() {
                        @Override
                        public void run() {
                            URL infoUrl = null;
                            InputStream inStream = null;
                            Log.i(TAG, "haha");
                            try
                            {
                                OkHttpClient client = new OkHttpClient();
                                Request request = new Request.Builder().url("http://1212.ip138.com/ic.asp").build();
                                Response response = client.newCall(request).execute();
                                String responseData = response.body().string();
                                responseData = Html.fromHtml(responseData).toString();
                                String hostIp = responseData.substring(responseData.indexOf("[") + 1, responseData.indexOf("]"));
                                Log.i(TAG, hostIp);
                                Message message = new Message();
                                message.what = UPDATE_TEXT;
                                message.obj = hostIp;
                                mHandler.sendMessage(message);
                            }
                            catch(MalformedURLException e) {
                                e.printStackTrace();
                            }
                            catch (IOException e) {
                                e.printStackTrace();
                            }
                            //下面的操作只是对通过淘宝接口获取的一次尝试,经实践证实,失败了。
                            String IP = "";
                            try
                            {
                                String address = "http://ip.taobao.com/service/getIpInfo2.php?ip=myip";
                                URL url = new URL(address);
                                HttpURLConnection connection = (HttpURLConnection) url
                                        .openConnection();
                                connection.setUseCaches(false);
    
                                if (connection.getResponseCode() == HttpURLConnection.HTTP_OK)
                                {
                                    InputStream in = connection.getInputStream();
    
    // 将流转化为字符串
                                    BufferedReader reader = new BufferedReader(
                                            new InputStreamReader(in));
    
                                    String tmpString = "";
                                    StringBuilder retJSON = new StringBuilder();
                                    while ((tmpString = reader.readLine()) != null)
                                    {
                                        retJSON.append(tmpString + "\n");
                                    }
                                    Log.i(TAG, retJSON.toString());
                                    JSONObject jsonObject = new JSONObject(retJSON.toString());
                                    String code = jsonObject.getString("code");
                                    if (code.equals("0"))
                                    {
                                        JSONObject data = jsonObject.getJSONObject("data");
                                        IP = data.getString("ip") + "(" + data.getString("country")
                                                + data.getString("area") + "区"
                                                + data.getString("region") + data.getString("city")
                                                + data.getString("isp") + ")";
    
                                        Log.e(TAG, "您的IP地址是:" + IP);
                                    }
                                    else
                                    {
                                        IP = "";
                                        Log.e(TAG, "IP接口异常,无法获取IP地址!");
                                    }
                                }
                                else
                                {
                                    IP = "";
                                    Log.e(TAG, "网络连接异常,无法获取IP地址!");
                                }
                            }
                            catch (Exception e)
                            {
                                IP = "";
                                Log.e(TAG, "获取IP地址时出现异常,异常信息是:" + e.toString());
                            }
                        }
                    }).start();
    
                }
            });
            Log.i(TAG, "onCreate: ");
        }
    }

    以下是IPInfomation类的代码实现:

    import android.content.Context;
    import android.net.wifi.WifiInfo;
    import android.net.wifi.WifiManager;
    
    
    /**
     * Created by defangfang on 2017/3/29.
     */
    
    public class IPInfomation {
        private  WifiManager mWifiManager;
        private  WifiInfo mWifiInfo;
    
        public IPInfomation(Context mContext){
    
            //获取wifi服务
            mWifiManager = (WifiManager)mContext.getSystemService(Context.WIFI_SERVICE);
            //判断wifi是否开启
            if (!mWifiManager.isWifiEnabled()) {
                mWifiManager.setWifiEnabled(true);
            }
            mWifiInfo = mWifiManager.getConnectionInfo();
        }
        public  String getWIFILocalIpAdress() {
            int ipAddress = mWifiInfo.getIpAddress();
            return formatIpAddress(ipAddress);
        }
        private static String formatIpAddress(int ipAdress) {
    
            return (ipAdress & 0xFF ) + "." +
                    ((ipAdress >> 8 ) & 0xFF) + "." +
                    ((ipAdress >> 16 ) & 0xFF) + "." +
                    ( ipAdress >> 24 & 0xFF) ;
        }
        public  String getMacAddress() {
            return mWifiInfo.getMacAddress();
        }
    
    
    }

    界面如下:
    卧槽怎么这么大啊!


    Over

    展开全文
  • Android-wifi获取ip地址
  • 03-WIFI通讯获取Wifi名称及ip地址

    千次阅读 2017-08-13 23:33:47
    在上一小节中,笔者在介绍wifi通讯流程中介绍到,wifi通讯的本质就是由路由器(wifi芯片)担任局域网服务器来实现多个客户端之间的数据...需要获取服务端(服务器)在局域网内的ip地址,因为如果不知道服务器的ip地址
  • 本文主要介绍了iOS获取当前连接的WiFi以及IP地址方法的核心代码。具有很好的参考价值,下面跟着小编一起来看下吧
  • Android获取wifiIP地址

    千次阅读 2018-07-13 10:27:58
    public static String getWifiIp() { WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE); if(!wifiManager.isWifiEnabled()) { return null; } WifiIn...
  • Android 获取Wifi下的IP地址

    千次阅读 2015-09-19 13:36:14
    获取IP地址: /** * 获取手机IP地址 * 必须连上wifi */ public String getIpAddress(Context context) { int result = 0; WifiManager wifiManager =(WifiManager) context.getSystemService(Context.WIFI_SER
  • iOS 获取WIFI,IP地址

    千次阅读 2015-08-20 15:01:31
    获取mac地址:#include // Per msqr #include #include #include - (NSString *) macaddress { int mib[6]; size_t len; char *buf; unsigned char *ptr; struct if_msghdr
  • Android 获取wifiIP地址

    千次阅读 2012-03-29 09:27:55
    wifimanage=(WifiManager)context.getSystemService(Context.WIFI_...//获取WifiManager //检查wifi是否开启 if(!wifimanage.isWifiEnabled()) { wifimanage.setWifiEnabled(true); } WifiInfo? wif
  • wifi无法获取ip地址的解决方法.docx
  • Android~获取WiFi MAC地址IP方法汇总

    千次阅读 2019-02-22 14:07:00
    最近由于项目需求,需要获取手机WiFi的MAC地址IP,于是乎网上搜罗了一波。各种版本的都有,各种方法都有,而且安卓6.0以下、6.0~7.0、7.0以上版本差异都很大!在这里我就集中给归一下类,方便以后查阅。 1. 归类 ...
  • Wifi获取本地IP地址

    千次阅读 2012-05-02 09:42:24
    WifiManager类提供了对设备Wifi功能的管理,包括Wifi开关的打开和关闭,IP地址获取等等,早期的Android版本甚至支持对于IP的设置。在这里仅介绍其简单的一个小应用——获取IP地址。   首先先添加Uses-Permission...
  • 首先检查下路由器是否坏了,确定路由器没有坏的情况下重启路由器。如果还没有用的话重新修改一下无线陆由器的协议和密码,重新设置好陆由器后,把手机原来有的搜索到的这个网络先删除,然后重新链接。
  • 通过这个方法获取当前连接的wifi信息,然后我当前wifiIP是192.168.1.105 但是我打印 Log.e("IpAddress", String.valueOf(cur_info.getIpAddress())); 以后,得到的字符串是E/IpAddress: 1761716416 请问是什么原因...
  • 下面是一个跟安卓网络相关的工具类,里面包含了一些很常用的功能,如WiFi的开关,WiFi热点的开关,获取手机IP地址等…… import android.content.Context; import android.net.ConnectivityManager; import ...
  • android 3g与wifi IP地址获取

    千次阅读 2012-02-01 11:35:50
    获取手机的ip地址:  一、wifi模式下获取 WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE); WifiInfo wifiInfo = wifiManager.getConnectionInfo(); int ipAddress = wifiInfo....
  • 转载:Android 获取wifiIP地址

    千次阅读 2013-06-06 08:54:27
    //转自:http://www.cnblogs.com/error404/archive/2012/05/03/2481958.html WifiManager wifimanage=(WifiManager)context.getSystemService(Context.WIFI_...//获取WifiManager //检查wifi是否开启 if(!wifim
  • mac --- wifi无法获取ip地址

    千次阅读 2020-04-22 22:51:49
    一些基本的修改方式: ...2.重启、删除记录重新连接等都不好使。 3.我的解决方式:室友新修的wifi,...登录路由器,打开ipv6开关,重新连接WiFi成功,貌似是我的机子网络设置有问题,没有深究,改的路由器。记录一下 ...
  • wifi ip地址租约处理

    千次阅读 2016-08-17 18:33:57
    答案是否定的,每个ap都有一个ip地址租约时间的配置项,就是 station在向ap申请ip地址后,只有一个有限的时间使用该ip地址,如果时间到后station没有再次向ap获取 ip地址,该station就会被ap踢出去,这样做目的是为
  • Android获取WIFI下的IP地址以及MAC地址 代码片段一: WifiManager wifiMan = (WifiManager) getSystemService(Context.WIFI_SERVICE); WifiInfo info = wifiMan.getConnectionInfo(); String mac = info....
  • ## # java的Socket通信中如何获取android手机wifiIP地址???。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 51,707
精华内容 20,682
关键字:

怎么获取wifi的ip地址