2016-06-06 3 views
1

Я пытаюсь проверить, не связан ли ip6 в моем коде с помощью php. Теперь моя идея - рассчитать загрузку, если она собирается подключиться. Я пытаюсь использовать этот код.проверить, нет ли ip6

$file = file_get_contents('http://ip6.me/'); 

// Trim IP based on HTML formatting 
$pos = strpos($file, '+3') + 3; 
$ip = substr($file, $pos, strlen($file)); 

// Trim IP based on HTML formatting 
$pos = strpos($ip, '</'); 
$ip = substr($ip, 0, $pos); 
$ipaddress = $ip; 
$ip_get = explode('.',$ipaddress); 

эта работа прекрасна со мной, если вы получите ip-адрес. Но есть время, когда ip6 вниз, и он сильно нагружается. Каков наилучший способ проверить, нет ли ip6? Я пытаюсь вычислить загрузку браузера, но я понятия не имею, как это сделать.

ответ

2

Я бы пинговал сервер через IPv6. В linux вы можете использовать следующий код.

exec('ping -6 -c 1 2001:4860:4860::8888', $lines, $exit); // ping will return 0 if ping succeeds 
if($exit == 0) { 
    // up 
    echo "up\n"; 
} else { 
    //down 
    echo "down\n"; 
} 

EDIT:

ответ испытания Самуила ли достижимости TCP-порт по протоколу IPv6. В некоторых случаях из-за конфигурации брандмауэра может работать только один из методов.

+0

Я собираюсь попробовать это. Благодарю. Я понятия не имею, есть такой код. – user3818576

+0

привет, где вы получили этот код «ping -6 -c 1 2001: 4860: 4860 :: 8888» – user3818576

+0

Я написал его. '-6' означает использовать ipv6. '-c 1' означает один раз пинг. 2001: 4860: 4860 :: 8888 - это DNS-сервер Google. – v7d8dpo4

1

Вы можете использовать нативный метод PHP socket_connect

bool socket_connect (resource $socket , string $address [, int $port = 0 ]) 

Инициировать соединение для решения с использованием сокета ресурсов, который должен быть действительным сокет ресурс, созданный с socket_create().

// Creating new socket 
    $socket = socket_create(AF_INET6, SOCK_STREAM, SOL_TCP) 
     or die("Unable to create socket\n"); 

    // Trying to connect, will return True on success  
    $res = socket_connect($socket, $host, $port)) 
Смежные вопросы