0
ifconfig 및 명령 결과가 Android 장치에서 프로그래밍 방식으로 나타나는 결과가 나오는지 궁금합니다. 비 뿌리 장치에서이 작업을 수행 할 수 있습니까? 당신의 의 AndroidManifest.xml 파일에서안드로이드에서 ifconfig 및 route 명령
ifconfig 및 명령 결과가 Android 장치에서 프로그래밍 방식으로 나타나는 결과가 나오는지 궁금합니다. 비 뿌리 장치에서이 작업을 수행 할 수 있습니까? 당신의 의 AndroidManifest.xml 파일에서안드로이드에서 ifconfig 및 route 명령
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
귀하의 코드 :
ConnectivityManager connectivityManager = (ConnectivityManager) getApplicationContext().getSystemService(Service.CONNECTIVITY_SERVICE);
/* you can print your active network via using below */
Log.i("myNetworkType: ", connectivityManager.getActiveNetworkInfo().getTypeName());
WifiManager wifiManager= (WifiManager) getApplicationContext().getSystemService(getApplicationContext().WIFI_SERVICE);
Log.i("routes ", connectivityManager.getLinkProperties(connectivityManager.getActiveNetwork()).getRoutes().toString());
Log.i("domains ", connectivityManager.getLinkProperties(connectivityManager.getActiveNetwork()).getDomains().toString());
Log.i("ip address ", connectivityManager.getLinkProperties(connectivityManager.getActiveNetwork()).getLinkAddresses().toString());
Log.i("dns address ", connectivityManager.getLinkProperties(connectivityManager.getActiveNetwork()).getDnsServers().toString());
if(connectivityManager.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_WIFI) {
Log.i("myType ", "wifi");
DhcpInfo d =wifiManager.getDhcpInfo();
Log.i("info", d.toString()+"");
}
else if(connectivityManager.getActiveNetworkInfo().getType() == ConnectivityManager.TYPE_ETHERNET) {
/* there is no EthernetManager class, there is only WifiManager. so, I used this below trick to get my IP range, dns, gateway address etc */
Log.i("myType ", "Ethernet");
Log.i("routes ", connectivityManager.getLinkProperties(connectivityManager.getActiveNetwork()).getRoutes().toString());
Log.i("domains ", connectivityManager.getLinkProperties(connectivityManager.getActiveNetwork()).getDomains().toString());
Log.i("ip address ", connectivityManager.getLinkProperties(connectivityManager.getActiveNetwork()).getLinkAddresses().toString());
Log.i("dns address ", connectivityManager.getLinkProperties(connectivityManager.getActiveNetwork()).getDnsServers().toString());
}
else {
}
당신은 돗 구기을 알고 도달 할 수 당신은 WifiManager
을 사용하여 와이파이 또는 네트워크를 통해 연결되어 있으며, WifiManager
은 와이파이만을 취급합니다. ConnectivityManager
을 사용해야합니다. WifiManager
과 ConnectivityManager
을 병합 한 코드를 다시 업데이트하여 원하는 결과를 얻었습니다.