iwspy is a linux utility to check the link quality by checking against an IP Address or a Hardware address (MAC-Address) or DNS hostname (resolved through DNS) that is attached to the same Wireless network as the host itself. The reason being it depends on the ARP cache on the system. So, if there is an addresses not in the ARP cache you can then ping once before trying. iwlist can help you to set upto 8 addresses which can be monitored and read back the quality of the link.
This utility is again based on the driver support and the /proc/net/wireless where the quality of link, signal strength and noise levels are updated each timea packet is received. This means, more the number of addresses montiored the more is the overhead on the driver. I didn’t have much of a luck with my Intel 3945 wireless card with Compat drivers.
The syntax is
iwspy [interface]
iwspy interface [+] DNSNAME | IPADDR | HWADDR […]
iwspy interface off
iwspy interface setthr low high
iwspy interface getthr
For instance
opensuse11:~ # iwspy wlan0 192.168.0.1
oropensuse11:~ # iwspy wlan0 00:11:22:33:44:55
To turn off monitoring
opensuse11:~ # iwspy wlan0 off
Set/Get Signal threshold values
To display the current threshold values
opensuse11:~ # iwspy wlan0 getthr
To set the value
opensuse11:~ # iwspy wlan0 setthr <low> <high>