<?php
define
'NM'"org.freedesktop.NetworkManager" );
$d = new DbusDbus::BUS_SYSTEMtrue );
$n $d->createProxyNM"/org/freedesktop/NetworkManager"NM);
$wifi = array();
foreach (
$n->GetDevices()->getData() as $device)
{
  
$device $device->getData();
  
$dev $d->createProxyNM$device"org.freedesktop.DBus.Properties");
  
$type $dev->Get(NM ".Device""DeviceType")->getData();
  if ( 
$type == // WI-FI
  
{
    
$wifiDev $d->createProxy(NM$deviceNM ".Device.Wireless");
    foreach( 
$wifiDev->GetAccessPoints()->getData() as $ap )
    {
      
$apDev $d->createProxy(NM$ap->getData(), "org.freedesktop.DBus.Properties");
      
$props $apDev->GetAll(NM ".AccessPoint")->getData();
      
$ssid '';
      foreach( 
$props['Ssid']->getData()->getData() as $n )
      {
        
$ssid .= chr($n);
      }
      
$wifi[] = array('ssid' => $ssid"mac_address" =>  $props['HwAddress']->getData() );
    }
  }
}

$request = array( 'version' => '1.1.0''host' => 'example.com''wifi_towers' => $wifi );

$c curl_init();
curl_setopt$cCURLOPT_URL'https://www.google.com/loc/json' );
curl_setopt$cCURLOPT_POST);
curl_setopt$cCURLOPT_POSTFIELDSjson_encode$request ) );
curl_setopt$cCURLOPT_RETURNTRANSFERtrue );
$result json_decodecurl_exec$c ) )->location;
echo 
"<a href='http://openstreetmap.org/?lat={$result->latitude}&amp;lon={$result->longitude}&amp;zoom=18'>here</a>\n";
?>
Output