Вход Регистрация
Файл: modules/admin/includes/ip_whois.php
Строк: 163
<?php

/**
 * This file is part of JohnCMS Content Management System.
 *
 * @copyright JohnCMS Community
 * @license   https://opensource.org/licenses/GPL-3.0 GPL-3.0
 * @link      https://johncms.com JohnCMS Project
 */

declare(strict_types=1);

defined('_IN_JOHNADM') || die('Error: restricted access');

$ip $request->getQuery('ip'''FILTER_VALIDATE_IP);
$nav_chain->add('IP Whois');

/**
 * @param $whoisserver
 * @param $domain
 * @return bool|string
 */
function whoisQuery($whoisserver$domain)
{
    
$port 43;
    
$timeout 5;
    
$fp = @fsockopen($whoisserver$port$errno$errstr$timeout);

    if (! 
$fp) {
        return 
false;
    }

    
fwrite($fp$domain "rn");
    
$out '';

    while (! 
feof($fp)) {
        
$out .= fgets($fp);
    }

    
fclose($fp);
    
$res '';

    if ((
strpos(strtolower($out), 'error') === false) && (strpos(strtolower($out), 'not allocated') === false)) {
        
$rows explode("n"$out);
        foreach (
$rows as $row) {
            
$row trim($row);
            if ((
$row != '') && ($row[0] != '#') && ($row[0] != '%')) {
                
$res .= $row "n";
            }
        }
    }

    return 
$res;
}

if (
$ip) {
    
$whoisservers = [
        
//"whois.afrinic.net",         // Africa - returns timeout error :-(
        
'whois.lacnic.net',            // Latin America and Caribbean - returns data for ALL locations worldwide :-)
        
'whois.apnic.net',             // Asia/Pacific only
        
'whois.arin.net',              // North America only
        
'whois.ripe.net',               // Europe, Middle East and Central Asia only
    
];

    
$results = [];

    foreach (
$whoisservers as $whoisserver) {
        
$result whoisQuery($whoisserver$ip);
        if (
$result && ! in_array($result$results)) {
            
$results[$whoisserver] = $result;
        }
    }

    
$res 'RESULTS FOUND: ' count($results);

    foreach (
$results as $whoisserver => $result) {
        
$res .= "nn-------------nLookup results for " $ip ' from ' $whoisserver " server:nn" $result;
    }

    
$array = [
        
'%'              => '#',
        
'inetnum:'       => '<strong class="red">inetnum:</strong>',
        
'netname:'       => '<strong class="green">netname:</strong>',
        
'descr:'         => '<strong class="red">descr:</strong>',
        
'country:'       => '<strong class="red">country:</strong>',
        
'admin-c:'       => '<strong class="gray">admin-c:</strong>',
        
'tech-c:'        => '<strong class="gray">tech-c:</strong>',
        
'status:'        => '<strong class="gray">status:</strong>',
        
'mnt-by:'        => '<strong class="gray">mnt-by:</strong>',
        
'mnt-lower:'     => '<strong class="gray">mnt-lower:</strong>',
        
'mnt-routes:'    => '<strong class="gray">mnt-routes:</strong>',
        
'source:'        => '<strong class="gray">source:</strong>',
        
'role:'          => '<strong class="gray">role:</strong>',
        
'address:'       => '<strong class="green">address:</strong>',
        
'e-mail:'        => '<strong class="green">e-mail:</strong>',
        
'nic-hdl:'       => '<strong class="gray">nic-hdl:</strong>',
        
'org:'           => '<strong class="gray">org:</strong>',
        
'person:'        => '<strong class="green">person:</strong>',
        
'phone:'         => '<strong class="green">phone:</strong>',
        
'remarks:'       => '<strong class="gray">remarks:</strong>',
        
'route:'         => '<strong class="red"><b>route:</b></strong>',
        
'origin:'        => '<strong class="gray">origin:</strong>',
        
'organisation:'  => '<strong class="gray">organisation:</strong>',
        
'org-name:'      => '<strong class="red"><b>org-name:</b></strong>',
        
'org-type:'      => '<strong class="gray">org-type:</strong>',
        
'abuse-mailbox:' => '<strong class="red"><b>abuse-mailbox:</b></strong>',
        
'mnt-ref:'       => '<strong class="gray">mnt-ref:</strong>',
        
'fax-no:'        => '<strong class="green">fax-no:</strong>',
        
'NetType:'       => '<strong class="gray">NetType:</strong>',
        
'Comment:'       => '<strong class="gray">Comment:</strong>',
    ];
    
$ipwhois trim($tools->checkout($res11));
    
$ipwhois strtr($ipwhois$array);
} else {
    
$ipwhois '';
}

echo 
$view->render('admin::ip_whois', ['ipwhois' => $ipwhois'ip' => $ip]);
Онлайн: 1
Реклама