Get the physical location of wireless router from its MAC address
coderrr.wordpress.com
coderrr.wordpress.com
MYMAC=$(arp -a | awk '/[0-9a-f]:/ { gsub(/^0:|[1-9a-z]0:/, "00:", $4); gsub(/:/, "", $4); print $4; exit; }') && curl --header "Content-Type: text/xml" --data "<?xml version='1.0'?><LocationRQ xmlns='http://skyhookwireless.com/wps/2005' version='2.6' street-address-lookup='full'><authentication version='2.0'><simple><username>beta</username><realm>js.loki.com</realm></simple></authentication><access-point><mac>$MYMAC</mac><signal-strength>-50</signal-strength></access-point></LocationRQ>" https://api.skyhookwireless.com/wps2/location
had to change 0: to 00: and strip out those :'s
curl --header "Content-Type: text/xml" --data "<?xml version='1.0'?><LocationRQ xmlns='http://skyhookwireless.com/wps/2005' version='2.6' street-address-lookup='full'><authentication version='2.0'><simple><username>beta</username><realm>js.loki.com</realm></simple></authentication><access-point><mac>$(arp -a | awk '/[0-9a-f]:/ { gsub(/^0:|:0:/, "00:", $4); gsub(/:/, "", $4); print $4; exit; }')</mac><signal-strength>-50</signal-strength></access-point></LocationRQ>" https://api.skyhookwireless.com/wps2/location
except you have an extra xml tag at the end
So why not do it yourself? http://wigle.net/ is a public access point MAC address mapping site run by community contributions of location information.
Last I checked they had over 45 million access points recorded. With enough users, the system can become self sustaining. You upload all the detected access points in your area for a request so it's trivial for them to auto-update their system if you submitted a newly discovered or changed MAC address.