android获取手机ip

获取设备IP与MAC地址
本文介绍了如何在Android应用中获取设备的IP地址与MAC地址,包括使用WifiManager类进行操作,并通过网络权限确保功能实现。
需要权限<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> <wbr></wbr>
<uses-permission android:name="android.permission.INTERNET"></uses-permission><wbr></wbr>
public class IPViewerActivity extends ListActivity {
ListView listView;
String hostIP;
String macAddr;
TextView ipText;
List<String> list = new ArrayList<String>();
<wbr><wbr><wbr>@Override</wbr></wbr></wbr>
<wbr><wbr><wbr>public void onCreate(Bundle savedInstanceState) {</wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>super.onCreate(savedInstanceState);</wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>setContentView(R.layout.main);</wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>hostIP = getLocalIpAddress();</wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>macAddr = getLocalMacAddress();</wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>ipText = (TextView) this.findViewById(R.id.ip);</wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>ipText.setText("ip:"+hostIP+"\nMacIP:"+macAddr);</wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>list.add("hostIP: "+hostIP);</wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>list.add("macAddr: "+macAddr);</wbr></wbr></wbr></wbr></wbr>
// <wbr><wbr><wbr><wbr>listView = this.getListView();</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>setListAdapter(new ArrayAdapter&lt;String&gt;(this,android.R.layout.simple_list_item_1,list.toArray(new String[list.size()])));</wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr>}</wbr></wbr></wbr>


public String getLocalIpAddress() { <wbr><wbr><wbr></wbr></wbr></wbr>
<wbr><wbr>try { <wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>for (Enumeration&lt;NetworkInterface&gt; en = NetworkInterface <wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>.getNetworkInterfaces(); en.hasMoreElements();) { <wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr>NetworkInterface intf = en.nextElement(); <wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr>for (Enumeration&lt;InetAddress&gt; enumIpAddr = intf <wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>.getInetAddresses(); enumIpAddr.hasMoreElements();) { <wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>InetAddress inetAddress = enumIpAddr.nextElement(); <wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>if (!inetAddress.isLoopbackAddress()) { <wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>return inetAddress.getHostAddress().toString(); <wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>} <wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr>} <wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>} <wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr>} catch (SocketException ex) { <wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>Log.e("ifo", ex.toString()); <wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr>} <wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr>return ""; <wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr>
} <wbr><wbr><wbr></wbr></wbr></wbr>

<wbr><wbr><wbr>public String getLocalMacAddress() { <wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE); <wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>WifiInfo info = wifi.getConnectionInfo(); <wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr>return info.getMacAddress(); <wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr>} <wbr></wbr></wbr></wbr></wbr>
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值