mirror of
				https://github.com/billz/raspap-webgui.git
				synced 2025-03-01 10:31:47 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			34 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			34 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| define("ACCESS_CHECK_IP","1.1.1.1");
 | |
| define("ACCESS_CHECK_DNS","one.one.one.one");
 | |
| 
 | |
|      $rInfo=array();
 | |
| // get all default routes
 | |
|      exec('ip route list |  sed -rn "s/default via (([0-9]{1,3}\.){3}[0-9]{1,3}).*dev (\w*).*src (([0-9]{1,3}\.){$
 | |
|      if ( !empty($routes) ) {
 | |
|         foreach ($routes as $i => $route) {
 | |
|           $prop=explode(' ',$route);
 | |
|           $rInfo[$i]["interface"]=$prop[0];
 | |
|           $rInfo[$i]["ip-address"]=$prop[1];
 | |
|           $rInfo[$i]["gateway"]=$prop[2];
 | |
|           // resolve the name of the gateway (if possible)
 | |
|           exec('host '.$prop[2].' | sed -rn "s/.*domain name pointer (.*)\./\1/p" | head -n 1',$host);
 | |
|           if (empty($host)) $host[0]="*";
 | |
|           $rInfo[$i]["gw-name"] = $host[0];
 | |
|           if (isset($checkAccess) && $checkAccess) {
 | |
|             // check internet connectivity w/ and w/o DNS resolution
 | |
|             exec('ping -W1 -c 1 -I '.$prop[0].' '.ACCESS_CHECK_IP.' |  sed -rn "s/.*icmp_seq=1.*time=.*/\&check\;$
 | |
|             if (empty($okip)) $okip[0]="failed";
 | |
|             $rInfo[$i]["access-ip"] = $okip[0];
 | |
|             exec('ping -W1 -c 1 -I '.$prop[0].' '.ACCESS_CHECK_DNS.' |  sed -rn "s/.*icmp_seq=1.*time=.*/\&check\$
 | |
|             if (empty($okdns)) $okdns[0]="failed";
 | |
|             $rInfo[$i]["access-dns"] = $okdns[0];
 | |
|           }
 | |
|         }
 | |
|       } else {
 | |
|         $data = array("error"=>"No route to the internet found");
 | |
|       }
 | |
|       $rInfo_json = json_encode($rInfo);
 | |
| ?>
 |