android 获取移动网络,Android在以太网下如果获取子网掩码、默认网关、DNS啊?

这篇博客分享了如何在Android系统中获取移动网络、以太网下的IP地址、Mac地址、默认网关和子网掩码的方法。提供了经过验证的代码示例,包括以太网下获取IP的函数和在WiFi连接下获取DHCP信息的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

把已经得到的信息的方法附上,都是从别人那里整理的,验证过木有问题。

下面附上获取mac地址,以太网下获取IP的方法以及wifi下获取网络信息的方法。

获取Mac地址:

public static String getMacAddress(){

try {

return loadFileAsString(“/sys/class/net/eth0/address”)

.toUpperCase().substring(0, 17);

} catch (Exception e) {

e.printStackTrace();

return null;

}

}

以太网下获取IP:

public static String getLocalIpAddress() {

try {

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

}

}

}

} catch (SocketException ex) {

Log.e(“WifiPreference IpAddress”, ex.toString());

}

return null;

}

wifi下获取相关网络信息:

wm = (WifiManager) getSystemService(Context.WIFI_SERVICE);

d = wm.getDhcpInfo();

//将地址码转换成字符串类型

public String FormatString(int value){

String strValue=””;

byte[] ary =intToByteArray(value);

for(int i=ary.length-1;i>=0;i–){

strValue+=(ary & 0xFF);

if(i>0){

strValue+=”.”;

}

}

return strValue;

}

public  byte[] intToByteArray(int value){

byte[] b = new byte[4];

for (int i = 0; i 

int offset = (b.length – 1 – i) * 8;

b = (byte) ((value >>> offset) & 0xFF);

}

return b;

}

IP:FormatString(d.ipAddress).toString();

默认网关:FormatString(d.gateway).toString();

子网掩码:FormatString(d.netmask).toString();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值