转载 android-获取系统的网关ip win7系统nat网关设置

原文地址:android-获取系统的网关ip作者:84许

在android程序里获取系统的网关ip,
使用android.net.DhcpInfo,这个类里面就存储着网关ip的数据,
下面是获取网关的方法
public static String getGateWay() {
if (Netgear_WifiManager.wifiManager != null){
DhcpInfodhcpInfo=Netgear_WifiManager.wifiManager.getDhcpInfo();
Log.e("gateway is",Netgear_IpAddressTranfer.long2ip(dhcpInfo.gateway));
}
return null;
}
由于DhcpInfo类提供的网关ip是个整数,因此还得将整数转为ip格式才可以
public class Netgear_IpAddressTranfer {
public static int str2Ip(String ip) throwsUnknownHostException {
InetAddress address =InetAddress.getByName(ip);// 在给定主机名的情况下确定主机的 // IP 址。
byte[] bytes = address.getAddress();// 返回此InetAddress 对象的原始 IP 地址
[转载]android-获取系统的网关ip win7系统nat网关设置
int a, b, c, d; a = byte2int(bytes[0]);
b = byte2int(bytes[1]); c =byte2int(bytes[2]);
d = byte2int(bytes[3]); int result =(a<<24) |(b<<16) |(c<<8) | d; return result;
}
public static int byte2int(byte b) {
int l = b&0x07f; if(b<0) { l |= 0x80;
}
return l;
}
public static long ip2long(String ip) throwsUnknownHostException {
int ipNum = str2Ip(ip);
return int2long(ipNum);
}
public static long int2long(int i) {
long l = i&0x7fffffffL;
if (i<0) {
l |= 0x080000000L;
}
return l;
}
public static String long2ip(long ip) {
int[] b = new int[4];
b[0] = (int)((ip>>24)&0xff);
b[1] = (int)((ip>>16)&0xff);
b[2] = (int)((ip>>8)&0xff);
b[3] = (int) (ip&0xff);
String x;
x = Integer.toString(b[3]) +"."+Integer.toString(b[2]) +"."+ Integer.toString(b[1]) +"."+Integer.toString(b[0]);
return x;
}
// 获取默认网关的IP地址

public static String getDefaultGatewayIp()throws Exception {
try {
Process result =Runtime.getRuntime().exec("su");
BufferedReader output = new BufferedReader(newInputStreamReader( result.getInputStream()));
String line = output.readLine();
while (line != null) {
Log.e("new line is", line);
line = output.readLine();
}
} catch (Exception e) {
System.out.println(e.toString());
}
return null; }
}
//===================================================
android获取wifi网络信息android获取wifi信息源码:
public class Main extends Activity {
private TextView tv;
private WifiManager wifiManager;
private DhcpInfo dhcpInfo;
private WifiInfo wifiInfo;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

wifiManager = (WifiManager)this.getSystemService(Context.WIFI_SERVICE);
dhcpInfo =wifiManager.getDhcpInfo();
wifiInfo =wifiManager.getConnectionInfo();
int ip =wifiInfo.getIpAddress();
int speed =wifiInfo.getLinkSpeed();
int networkId =wifiInfo.getNetworkId();
int getRssi =wifiInfo.getRssi();
String macAddr =wifiInfo.getMacAddress();
String getSSID =wifiInfo.getSSID();
String detail =wifiInfo.toString();
String bssid =wifiInfo.getBSSID();

tv = (TextView)this.findViewById(R.id.wifiInfo);

tv.append("ip :" + ip +"n");
tv.append("speed :" + speed +"n");
tv.append("macAddr :" + macAddr+"n");
tv.append("networkId :" +networkId+ "n");
tv.append("getRssi :" + getRssi+"n");
tv.append("getSSID :" + getSSID+"n");
tv.append("detail :" + detail +"n");
tv.append("bssid :" + bssid +"n");
tv.append("dhcpInfo geteway is:"+ dhcpInfo.gateway + "n");
tv.append("dhcpInfo mask is :"+ dhcpInfo.netmask + "n");
tv.append("dhcpInfo ip is :" +dhcpInfo.ipAddress + "n");
tv.append("ip is :" +FormatIP(ip) +"n");
tv.append("geteway is :" +FormatIP(dhcpInfo.gateway) + "n");
tv.append("mask is :" +FormatIP(dhcpInfo.netmask) +"n");
}

// IP地址转化为字符串格式
public String FormatIP(int IpAddress) {
returnFormatter.formatIpAddress(IpAddress);
}
}
在anroidMainfest.xml加入权限<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>

  

爱华网本文地址 » http://www.aihuau.com/a/25101014/203897.html

更多阅读

网上下载下来的网卡驱动怎么安装? 无线网卡驱动安装失败

网上下载下来的网卡驱动怎么安装?——简介重装系统后有时候因为断网或者其他原因无法联网,这时候,更新网卡驱动就不能使用像驱动精灵之类的联网安装的软件。这时候就只能从能上网的电脑下载下相应的网卡驱动,然后再在电脑上安装了。网

Android手机系统软件apk开发制作!免费学教程 android apk系统权限

Android手机系统软件apk开发制作!免费学教程——简介随着Android安卓系统的日益广泛使用,越来越多人发现手机潜在的力量,当然手机应用软件app的朝阳也随之并进,手机app软件潜在着无线巨大的发展空间和利益金钱空间!例如说:微信!UC浏览器!手

转载 经典折子的赋新--谈谈王耀文曹莉茵的《关亡》 折子

名家代表作,涵盖说噱弹唱演,念及台风气质掌声:张:《盘夫》、《塞赃》、《照镜》杨:《别兄》、《回柬》、《絮阁》蒋:《夺子》、《认母》、《关亡》严:《钉板告状》、《载美回苏》、《激怒醇亲王》姚:《什刹海》、《暖锅为媒》、《炼印》原

怎样找到路由器的网关地址 精 路由器的网关地址

在设置电脑的固定IP的时候我们需要找到路由器的网关地址,很多人都不知道这么弄,这里一步步教给大家怎么弄:怎样找到路由器的网关地址 精——步骤/方法怎样找到路由器的网关地址 精 1、首先打开你的浏

解除限制的网速,使上网速度达到100%. win8网速限制解除

XP/WIN7系统都会默认限制20%的网速,我们可以很轻松地解除这个限制,使你的上网速度达到100%,真正地体验冲浪的感觉.方法如下:开始菜单-运行-输入"gpedit.msc”-确定-计算机配置-管理模板-网络-qos数据包计划程序-限制保留宽带-属性-已启用-将带宽限制

声明:《转载 android-获取系统的网关ip win7系统nat网关设置》为网友疯子没有欲望分享!如侵犯到您的合法权益请联系我们删除