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

مارس 17, 2013 توسط : سعید

سلام

تابع زیر نام یک دامنه رو میگیره و مشخصاتش رو برگشت میده.این تابع برای دامنه های 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

میترا
مارس 25, 2013 @ 12:08 ب.ظ

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

پاسخ
    سعید
    مارس 31, 2013 @ 3:35 ب.ظ

    سلام
    با همین تابعی که نوشتم.اگر دامنه ای ثبت نشده باشه در مقدار برگشتی یک کلمه ERROR داره که نشون میده دامنه ثبت نشده هنوز. با کد زیر اینکارو انجام بدید :
    [php]
    $return = whois_query(‘phpro.ir’);
    if(strpos($return,’ERROR’) === false){
    echo ‘ثبت شده’;
    }else{
    echo ‘ثبت نشده’;
    }
    [/php]

    پاسخ
      میترا
      آوریل 7, 2013 @ 2:53 ب.ظ

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

      پاسخ
        میترا
        آوریل 7, 2013 @ 5:13 ب.ظ

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

        پاسخ
          سعید
          آوریل 10, 2013 @ 6:04 ب.ظ

          چرا چک میکنه.

          میترا
          آوریل 11, 2013 @ 11:36 ق.ظ

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

      امیر
      می 14, 2016 @ 9:19 ق.ظ

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

      پاسخ
مارس 30, 2013 @ 8:15 ق.ظ

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

پاسخ
    سعید
    مارس 31, 2013 @ 3:25 ب.ظ

    خواهش میکنم

    پاسخ
آوریل 11, 2013 @ 11:15 ب.ظ

ممنون

پاسخ
جولای 7, 2014 @ 7:43 ب.ظ

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

پاسخ
دسامبر 25, 2014 @ 5:06 ب.ظ

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

پاسخ
    Saeed Moqadam
    دسامبر 30, 2014 @ 11:20 ب.ظ

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

    پاسخ
mojtaba
آگوست 8, 2016 @ 3:34 ب.ظ

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

پاسخ

دیدگاهتان را بنویسید

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


*