Я установил онлайн php curl http header retriever.
Как это работает:
Пользователь переходит на URL https://www.example.com/header/, затем ввод поле, в котором пользователь может ввести доменное имя. И нажмите Отправить. Затем PHP использует curl для получения http-заголовков сайта. Он извлекает заголовки из того, что там введено, только если веб-сайт работает, если нет, он ждет 5 секунд и закрывает соединение. Если URL-адрес недействителен, curl не выполняется (PHP использует регулярное выражение для его получения).
Но, если пользователь вводит какой-либо локальный адрес в поле ввода, он получает локальный адрес. Как я могу остановить его от получения веб-сайтов из локальной сети? Я не могу найти никаких вопросов по этому поводу. Поэтому, пожалуйста, помогите мне.
Используемые опции cURL:
curl_setopt($ch, CURLOPT_URL, $domain);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_TIMEOUT_MS, 5000);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0);
//Is there any option I could use to not allow local network connection?
Редактировать
На всякий случай проще, если у вас есть весь код:
<code><form action="" method="get">
<p><b><label for="domain">Domain/IP Address:</label></b> <input type="text" name="url" id="url" value="<?=htmlentities($_GET["url"], ENT_QUOTES);?>"> <input type="submit" class="btn home" value="Lookup"></p>
</form>
<?php
$domain = htmlentities($_GET["url"], ENT_QUOTES);
$ch = curl_init();
// set url
curl_setopt($ch, CURLOPT_URL, $domain);
//return the transfer as a string
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//enable headers
curl_setopt($ch, CURLOPT_HEADER, 1);
//get only headers
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_TIMEOUT_MS, 5000);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_2_0);
// $output contains the output string
$output = htmlentities(curl_exec($ch), ENT_QUOTES);
$curlinfo = curl_getinfo($ch);
// close curl resource to free up system resources
curl_close($ch);
if($domain) {
if (!preg_match("~^(?:f|ht)tps?://~i", $domain)) {
// If not exist then add http
$domain = "http://" . $domain;
}
if (filter_var($domain, FILTER_VALIDATE_URL)) {
$result = $output;
echo "<div id='result'>";
if (trim($result) != "") {
echo "<pre style='background-color: #EEEEEE; overflow: auto;'><b>\n" . $result . "\n</b>
\ n "; echo" Взял ". $ Curlinfo [" total_time "]." Seconds. ";} Else {echo"
Не удалось получить сайт. Это может быть связано с тем, что загрузка веб-сайта занимает более 5 секунд или веб-сайт не существует.";} echo"";} else {echo" Invalid Domain / IP! ";}}?>