Obtenir le nom de L'Interface Wifi sur Android
je suis en train de développer une sorte de renifleur wifi. Pour ce faire, j'utilise un binaire tcpdump compilé pour arm. Mais je suppose que je connais le nom de L'Interface Wifi.
, Selon la documentation du kit de développement cartes réseau fournir une méthode getName ().
Je prévois d'utiliser cette méthode, donc la première étape est d'obtenir L'objet NetworkInterface correspondant à mon interface wifi.
Pour faire ce que je utilisez WifiInfo pour obtenir l'adresse ip, puis obtenez une adresse Inetadress correspondant à cette adresse IP et finalement obtenez une instance D'Interfaceréseau en utilisant la méthode statique getByInetAddress(adresse Inetadress).
Voici mon code:
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();
byte[] bytes = BigInteger.valueOf(ipAddress).toByteArray();
InetAddress addr = InetAddress.getByAddress(bytes);
NetworkInterface netInterface = NetworkInterface.getByInetAddress(addr);
Log.e("MyTemp",netInterface.getName());
La sortie :
SSID: Nancy-Universite, BSSID: 00:19:30:6a:a9:40, MAC: B4:07:F9:D5:7C:8C, Supplicant state: COMPLETED, RSSI: -80, Link speed: 11, Net ID: 6
mais je sauf quelque chose comme:
eth0
j'essaye aussi la méthode isVirtual () mais elle ne compile pas, et j'obtiens une erreur le message disant que la méthode isVirtual () n'est pas défini pour le type NetworkInterface.
Je ne comprends pas ce qui se passe...
Toute aide sera apprécier.
4 réponses
Essayez cette
for(Enumeration<NetworkInterface> list = NetworkInterface.getNetworkInterfaces(); list.hasMoreElements();)
{
NetworkInterface i = list.nextElement();
Log.e("network_interfaces", "display name " + i.getDisplayName());
}
Tout ce que vous avez à faire est de changer
Log.e("MyTemp",netInterface.getName());
à
Log.e("MyTemp",netInterface.getDisplayName());
utilisez ceci: Chaîne nom_interface = SystemInfo.getInstance().getProperty ("wifi.interface");
ça va marcher..
vous pouvez appeler /system/ip link
et analyser les résultats.
bash-3.2# ip link
ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: usb0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
link/ether 6e:3d:7a:3a:62:ee brd ff:ff:ff:ff:ff:ff
3: usb1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
link/ether da:bb:3f:04:1b:cd brd ff:ff:ff:ff:ff:ff
4: sit0: <NOARP> mtu 1480 qdisc noop state DOWN
link/sit 0.0.0.0 brd 0.0.0.0
5: ip6tnl0: <NOARP> mtu 1460 qdisc noop state DOWN
link/tunnel6 :: brd ::
6: ifb0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN qlen 32
link/ether 76:3c:4e:23:cc:f8 brd ff:ff:ff:ff:ff:ff
7: ifb1: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN qlen 32
link/ether 02:17:54:31:ff:bd brd ff:ff:ff:ff:ff:ff
8: tun: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 500
link/ether b2:b7:11:da:7c:6a brd ff:ff:ff:ff:ff:ff
16: tiwlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 100
link/ether 40:fc:89:e4:67:4c brd ff:ff:ff:ff:ff:ff