کد آماده : گرفتن مشخصات یک دامنه با PHP

اسفند ۲۷, ۱۳۹۱ توسط : سعید

سلام

تابع زیر نام یک دامنه رو میگیره و مشخصاتش رو برگشت میده.این تابع برای دامنه های ir هم کار میکنه. اصطلاحا به این کار who is  میگن!

function whois_query($domain) {
 
    // fix the domain name:
    $domain = strtolower(trim($domain));
    $domain = preg_replace('/^http:\/\//i', '', $domain);
    $domain = preg_replace('/^www\./i', '', $domain);
    $domain = explode('/', $domain);
    $domain = trim($domain[0]);
 
    // split the TLD from domain name
    $_domain = explode('.', $domain);
    $lst = count($_domain)-1;
    $ext = $_domain[$lst];
 
    // You find resources and lists 
    // like these on wikipedia: 
    //
    // <a href="http://de.wikipedia.org/wiki/Whois">http://de.wikipedia.org/wiki/Whois</a>
    //
    $servers = array(
        "biz" => "whois.neulevel.biz",
        "com" => "whois.internic.net",
        "us" => "whois.nic.us",
        "coop" => "whois.nic.coop",
        "info" => "whois.nic.info",
        "name" => "whois.nic.name",
        "net" => "whois.internic.net",
        "gov" => "whois.nic.gov",
        "edu" => "whois.internic.net",
        "mil" => "rs.internic.net",
        "int" => "whois.iana.org",
        "ac" => "whois.nic.ac",
        "ae" => "whois.uaenic.ae",
        "at" => "whois.ripe.net",
        "au" => "whois.aunic.net",
        "be" => "whois.dns.be",
        "bg" => "whois.ripe.net",
        "br" => "whois.registro.br",
        "bz" => "whois.belizenic.bz",
        "ca" => "whois.cira.ca",
        "cc" => "whois.nic.cc",
        "ch" => "whois.nic.ch",
        "cl" => "whois.nic.cl",
        "cn" => "whois.cnnic.net.cn",
        "cz" => "whois.nic.cz",
        "de" => "whois.nic.de",
        "fr" => "whois.nic.fr",
        "hu" => "whois.nic.hu",
        "ie" => "whois.domainregistry.ie",
        "il" => "whois.isoc.org.il",
        "in" => "whois.ncst.ernet.in",
        "ir" => "whois.nic.ir",
        "mc" => "whois.ripe.net",
        "to" => "whois.tonic.to",
        "tv" => "whois.tv",
        "ru" => "whois.ripn.net",
        "org" => "whois.pir.org",
        "aero" => "whois.information.aero",
        "nl" => "whois.domain-registry.nl"
    );
 
    if (!isset($servers[$ext])){
        die('Error: No matching nic server found!');
    }
 
    $nic_server = $servers[$ext];
 
    $output = '';
 
    // connect to whois server:
    if ($conn = fsockopen ($nic_server, 43)) {
        fputs($conn, $domain."\r\n");
        while(!feof($conn)) {
            $output .= fgets($conn,128);
        }
        fclose($conn);
    }
    else { die('Error: Could not connect to ' . $nic_server . '!'); }
 
    return $output;
}


منبع : http://php.dzone.com

بازدید : ۵۵۷۸

میترا
فروردین ۵, ۱۳۹۲ @ ۱۲:۰۸ ب.ظ

سلام
خسته نباشید
چطور میشه آزاد بودن یک دامنه رو چک کرد؟
کدشو دارم اما .ir رو چک نمی کنه

پاسخ دادن
    سعید
    فروردین ۱۱, ۱۳۹۲ @ ۳:۳۵ ب.ظ

    سلام
    با همین تابعی که نوشتم.اگر دامنه ای ثبت نشده باشه در مقدار برگشتی یک کلمه ERROR داره که نشون میده دامنه ثبت نشده هنوز. با کد زیر اینکارو انجام بدید :

    $return = whois_query('phpro.ir');
    if(strpos($return,'ERROR') === false){
    	echo 'ثبت شده';
    }else{
    	echo 'ثبت نشده';
    }
    
    پاسخ دادن
      میترا
      فروردین ۱۸, ۱۳۹۲ @ ۲:۵۳ ب.ظ

      واقعا ممنونمممممم

      پاسخ دادن
        میترا
        فروردین ۱۸, ۱۳۹۲ @ ۵:۱۳ ب.ظ

        این دامنه .com رو چک نمیکنه؟

        پاسخ دادن
          سعید
          فروردین ۲۱, ۱۳۹۲ @ ۶:۰۴ ب.ظ

          چرا چک میکنه.

          میترا
          فروردین ۲۲, ۱۳۹۲ @ ۱۱:۳۶ ق.ظ

          برا من چک نمیکنه

      امیر
      اردیبهشت ۲۵, ۱۳۹۵ @ ۹:۱۹ ق.ظ

      متاسفانه آزاد بودن دامنه ملی ( آی آر ) رو تنها چک میکنه و برای دامنه کام و دیگر دامین ها رو نمیتونه چک کنه

      پاسخ دادن
فروردین ۱۰, ۱۳۹۲ @ ۸:۱۵ ق.ظ

بسیار از زحماتی که می کشین ، ممنون هستیم

پاسخ دادن
    سعید
    فروردین ۱۱, ۱۳۹۲ @ ۳:۲۵ ب.ظ

    خواهش میکنم

    پاسخ دادن
فروردین ۲۲, ۱۳۹۲ @ ۱۱:۱۵ ب.ظ

ممنون

پاسخ دادن
تیر ۱۶, ۱۳۹۳ @ ۷:۴۳ ب.ظ

با سلام :
از این تابع کجا و چطوری باید استفاده کرد ؟

پاسخ دادن
دی ۴, ۱۳۹۳ @ ۵:۰۶ ب.ظ

میان همه نظر ها که جواب داده شده، فقط نظر آخری بدردبخور هست که جواب ندادید.
خب آخه چجوری از کد بالا استفاده کنیم؟
من یه فرم با اینپوت نیم domain درست کردم ولی باز اطلاعاتی از دامین نشون نداد.

پاسخ دادن
    Saeed Moqadam
    دی ۹, ۱۳۹۳ @ ۱۱:۲۰ ب.ظ

    برای استفاده از کد بالا باید با زبان پی اچ پی و کار با توابع آشنایی داشته باشید. به طور خلاصه فرمی که درست کردید وقتی سابمیت شد باید مقدار فیلد رو به عنوان ورودی این تابع ارسال کنید.

    پاسخ دادن
mojtaba
مرداد ۱۸, ۱۳۹۵ @ ۳:۳۴ ب.ظ

سلام خسته نباشید میشه یک کد اماده برای پیدا کردن ادرس فیزیکی کاربر از روی ip بنویسید ؟

پاسخ دادن

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *


*