Home » Networking » Net_Wifi » Manual
Scans for wireless networks
Setup
Setup – Making it work
Setup - Making it work
Net_Wifi uses the command line
tools iwconfig and iwlist
to gather information about local wireless network interfaces,
and to give information about wireless networks reachable by
your computer.
To work with the class, you need to make sure that both programs
are found. By default, /sbin/ and
/usr/sbin/ are looked up to find them when
the class is instantiated.
If that fails, the system's which tool
is used to determine the location.
You can retrieve and set their locations with getPathIwconfig() and setPathIwconfig(), as well as getPathIwlist() and setPathIwlist().
Local info
Local info – Current interface configuration
Getting local interface configuration
At first, you can get a list of network interfaces on your computer via getSupportedInterfaces(). It returns an array of strings that are the names of the network interfaces, e.g. "eth1" or "wlan0".
The full information about the state of a network interface can be retrieved with getCurrentConfig(). It returns a Net_Wifi_Config object. To just check if an interface is connected, use the isConnected() method also takes the interface name as only parameter.
A Net_Wifi_Config looks like this:
Net_Wifi_Config {
activated => bool(true)
associated => bool(true)
ap => string(17) "00:03:C9:44:34:2C"
ssid => string(4) "free"
mode => string(7) "managed"
nick => NULL
rate => string(2) "54"
power => string(2) "20"
protocol => string(12) "IEEE 802.11g"
rssi => string(3) "-37"
}
Scanning
Scanning – Finding wireless networks
Finding wireless networks
To scan for available wireless networks in your environment, use the scan() method. It takes the network interface name as only parameter and returns an array of Net_Wifi_Cell objects.
You get an array of local wireless interfaces via the getSupportedInterfaces() method.
A cell object looks like this:
Net_Wifi_Cell {
cell => string(2) "01"
mac => string(17) "00:03:C9:44:34:2C"
ssid => string(8) "<hidden>"
mode => string(6) "master"
channel => int(1)
encryption=> bool(false)
frequency => NULL
protocol => string(13) "IEEE 802.11bg"
rate => float(54)
rates => array(12) {
0 => float(1)
1 => float(2)
2 => float(5.5)
3 => float(6)
}
rssi => string(3) "-39"
beacon => int(336)
quality => string(6) "90/100"
}