whois-script

Gesponsorde koppelingen

PHP script bestanden

  1. whois-script

« Lees de omschrijving en reacties

index.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
<?php
    include 'functions.php'; //het bestand met de functies includen
    include 'config.php'; //het bestand met de WhoIs server gegevens includen
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="functions.js"></script>
<link rel="stylesheet" type="text/css" media="screen, projection" href="style.css" />
</head>
<body>
<h1>WhoIs</h1>

<div id="demo">
<form method="post" class="whoisform" action="#">
    <p><span style="position:relative;top:-1px;">www.</span>
    <input type="text" name="domain" value="<?=isset($_POST['domain']) ? $_POST['domain'] : '' ?>" />.
        <select name="tld">
            <option value="all">alles</option>
            <?php
                foreach($servers as $key => $server) //een foreach over alle opgegeven servers (uit het config bestand)
                {
                    echo '<option value="'.$key.'"'; ///een option echoen
                    
                    if(isset($_POST['tld']) && $_POST['tld'] == $key) //als de geposte extensie hetzelfde is als de extension van de foreach
                    {
                        echo ' selected="selected"'; //dan moet de optie geselecteerd zijn
                    }
                    
                    echo '>.'.$key.'</option>'."\n"; //en het einde van de option
                }
            ?>

        </select>
    <input type="submit" value="Go" />
    </p>
</form>
</div>

<?php
    if($_SERVER['REQUEST_METHOD'] == 'POST') //als er gepost is
    {
        if(empty($_POST['domain'])) //als het domein leeg is
        {
            echo 'Geen domein opgegeven';
        }

        elseif(empty($_POST['tld'])) //als de extensie (om welke reden dan ook) leeg is
        {
            echo 'Extensie niet opgegeven';
        }

        elseif(strlen($_POST['domain']) < 2) //als het domein korter is dan 2 tekens
        {
            echo 'domein is te kort';
        }

        elseif(strlen($_POST['domain']) > 60) //als het domein langer is dan 60 tekens
        {
            echo 'domein is te lang';
        }

        elseif(!preg_match('/^([a-zA-Z0-9_-]+)$/i', $_POST['domain'])) //als het domein illigale karakters bevat
        {
            echo 'Er mogen alleen letters en cijfers in de url zitten, let op dat je alleen het gedeelte tussen www. en .extensie invult.
                  Dus niet www.google.nl of google.nl of www.google, maar gewoon google.'
;
        }

        else //als er geen errors zijn opgetreden
        {
            //echo de "status" div, en start de tabel
            ?>

            <div id='whoiswait'>
                <div class='outer'>
                    <div class='inner'>
                        <img src="status.gif"><br />
                        checking <span id='whoistld'></span>
                    </div>
                </div>
            </div>

            <table id="whoistable" border="0" width="100%" cellpadding="5" cellspacing="0">
            <tr>
                <th>Domein</th>
                <th>Resultaat</th>
                <th>WhoIs</th>
            </tr>
            <tr>
                <?php
                    $domein
= str_replace('http://', '', $_POST['domain']); //haal eventueel http:// uit de URL
                    $domein = str_replace('www.', '', $domein); //haal even www. uit de url
                    $domein = htmlentities($domein); //haal eventueel karakters eruit die er niet in thuis horen
                    
                    $extensie = htmlentities($_POST['tld']); //haal eventueel karakters eruit die er niet in thuis horen
                    
                    if($extensie == 'all') //als alle extensies moeten worden gecontroleerd
                    {
                        $i = 0; //set $i op 0, zodat we straks met deze variabele kunnen gaan werekn
                
                        foreach($servers as $extensie => $server) //een foreach over alle WhoIs servers
                        {
                            echo "<script type='text/javascript'>
                                    if(document.getElementById('whoistld'))
                                    {
                                        document.getElementById('whoistld').innerHTML=\""
.$domein.".".$extensie."\";
                                    }
                                  </script>"
; //echo de data die de de status div laat veranderen
                            
                            $i++; //verhoog i met 1, zodat we de afwisselende kleurtjes krijgen
                
                            voer_uit($domein, $extensie, $server, $i); //voer de functie voer_uit uit, uit functions.php
                            
                            flush(); //send  alle output naar de browser, zodat de status div geupdate wordt.
                        }
                    }

                    else //als er maar 1 domein wordt opgeroepen
                    {
                        echo "<script type='text/javascript'>
                                if(document.getElementById('whoistld'))
                                {
                                    document.getElementById('whoistld').innerHTML=\""
.$domein.".".$extensie."\";
                                }
                              </script>"
; //echo de data voor de status div
                        
                        flush(); //stuur de info voor de status informatie naar de browser
                        
                        $servers[$extensie] = isset($servers[$extensie]) ? $servers[$extensie] : 'na'; //zoek de gegevens op in de array
                        
                        voer_uit($domein, $extensie, $servers[$extensie], false); //voer de functie voer_uit uit, uit functions.php
                    }
                    
                    echo "<script type='text/javascript'>
                            if(document.getElementById('whoiswait'))
                            {
                                document.getElementById('whoiswait').style.display = 'none';
                            }
                          </script>"
; //echo dat de status div verborgen mag worden
            ?>

            </table>
            <div id="demo">
            <form method="post" class="whoisform" action="#">
                <p><span style="position:relative;top:-1px;">www.</span>
                <input type="text" name="domain" value="<?=isset($_POST['domain']) ? $_POST['domain'] : '' ?>" />.
                    <select name="tld">
                        <option value="all">alles</option>
                        <?php
                            //onderstaande foreach is dezelfde als die bovenaan
                            
                            foreach($servers as $key => $server)
                            {

                                echo '<option value="'.$key.'"';
                                
                                if(isset($_POST['tld']) && $_POST['tld'] == $key)
                                {

                                    echo ' selected="selected"';
                                }

                                
                                echo '>.'.$key.'</option>'."\n";
                            }

                        ?>

                    </select>
                <input type="submit" value="Go" />
                </p>
            </form>
            </div>
            <?php
        }
    }

?>

</body>
</html>


functions.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<?php
    function check($domein, $ext, $server, $mode, $woord, $teveel, $jn) //maak een functie check aan
    {
        $check = @fsockopen($server, 43); //open een connectie met de WhoIs server, een @-je om error van een eventuele misconnectie te verbergen
        
        if(!@fwrite($check, $domein.'.'.$ext."\r\n")) //als er niet naar de server geschreven kan worden
        {        
            return extra_controle($domein, $ext, 'Geen of ongeldig resultaat van WhoIs server'); //voer de andere controle uit (zie onderaan)
        }
        else
        {
            $result = NULL; //result gaan we zometeen vullen
            
            while (!feof($check)) //zolang nog niet alle data is uitgelezen
            {
                $result .= fread($check, 1024); //blijven we lezen, en zetten we de data in $result
            }
            
            fclose($check); //sluit de verbinding met de server
            
            if(ereg($teveel, $result)) //als de server heeft terug gegeven dat er teveel aanvragen zijn
            {
                return extra_controle($domein, $ext, 'Te veel aanvragen'); //doe een extra controle
            }
            if($mode == 'whois') //als er om een WhoIs gevraagd wordt
            {
                return $result; //kunnen we het resultaat terug geven
            }
            elseif($mode == 'check')  //als er alleen wordt gevraagd om vrij of niet vrij
            {
                if($jn == 'bevat') //als het resultaat de woorden moet bevatten
                {
                    if(ereg($woord, $result)) //dan kijken we of het resultaat de woorden bevat. Zo ja
                    {
                        return '<span class="error">niet vrij</span>'; //dan is het domein niet vrij
                    }
                    else //bevat het resultaat niet de woorden
                    {
                        return '<span class="vrij">vrij</span>'; //dan is het domein nog vrij
                    }
                }

                else //als het resultaat de woorden niet moet bevatten
                {
                    if(!ereg($woord, $result)) //dan kijken we of het resultaat de woorden ook niet bevat. Zo ja
                    {
                        return '<span class="error">niet vrij</span>'; //dan is het domein niet vij
                    }
                    else //bevat het resultaat wel de woorden
                    {
                        return '<span class="vrij">vrij</span>'; //dan is het domein vrij
                    }
                }
            }
        }
    }
    
    function
voer_uit($domein, $extensie, $server, $i) //maak de funtie voer_uit aan
    {
        global $servers; //we willen graag de data uit de variabele $servers gebruiken
        
        $k = ((($i + 1) % 2) == 0) ? 1 : 2; //als $i even is, krijgt $k de waarde 1, anders 2
        
        echo '<tr><td class="whoisrow'.$k.'">
                <a href="http://www.'
.$domein.'.'.$extensie.'" target="_blank">'.$domein.'.'.$extensie.'</a>
              </td>
              <td class="whoisrow'
.$k.'">'; //echo de eerste kolom, met de URL
              
        if($servers[$extensie] == 'na') //als de domeinnaam niet voor komt in de array
        {
            echo 'Domeinen met deze extensie kunnen niet worden gechecked'; //dan kunnen we niet checken
        }
        else //als de domeinnaam wel voorkomt in de array
        {
            $check = check($domein, $extensie, $server[0], 'check', $server[3], $server[1], $server[2]); //kunnen we de check uit gaan voeren
            echo $check;
        }

        echo  '</td>
              <td class="whoisrow'
.$k.'">'; //begin de laatste kolom
              
        if($check == '<span class="error">niet vrij</span>') //als de domeinnaam niet vrij is
        {
            echo '<a href="whois.php?url='.$domein.'&amp;ext='.$extensie.'" onClick="whoisDetails(\'700\',\'400\',\'yes\');" target="whoisWindow">WhoIs</a>';
            //dan kan er een WhoIs gedaan worden
        }
        else //als de domeinnaam vrij is
        {
            echo 'Geen gedetailleerde informatie beschikbaar'; //dan is er geen gedetaileerde informatie beschikbaar
        }
        
        echo '</td></tr>';//en echo de laatste kolom, met een linkje naar de WhoIs
    }
    
    function
extra_controle($domein, $ext, $melding) //een functie voor als de WhoIs server niks geeft
    {
        if(@fopen('http://www.'.$domein.'.'.$ext, 'r')) //als we het domein kunnen openen
        {
            return '<span class="error">'.$melding.', maar waarschijnlijk niet vrij</span>'; //zal het waarschijnlijk niet vrij zijn
        }
        else //als we het domein niet kunnen openen
        {
            return '<span class="vrij">, '.$melding.', maar waarschijnlijk vrij</span>'; //dan zal het domein waarschijnlijk nog vrij zijn
        }
    }

?>


config.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<?php
    /*
        Hier kun je WhoIs servers opgeven.
        
        De opbouw van de array is:
        
        $server['extensie'] = array('whois server', 'melding bij te veel requests', 'bevat/bevat niet', 'de volgende woorden');
        
        het "bevat/bevat niet de volgende woorden" moet zo zijn opgesteld dat het resultaat gevonden moet zijn. Voorbeeld:
        
        Als het resultaat de woorden "Status: active" bevat, is het domein al geregistreerd
        Als het resultaat niet de woorden "No match" bevat, is het domein al geregistreerd
    */

    $servers = array();
    
    $servers['nl'] = array('whois.domain-registry.nl', 'too many requests', 'bevat', 'Status: active');
    $servers['com'] = array('whois.crsnic.net', 'too many', 'bevat niet', 'No match');
    $servers['org'] = array('whois.pir.org', 'too many', 'bevat niet', 'NOT FOUND');
    $servers['info'] = array('whois.afilias.info', 'too many', 'bevat niet', 'NOT FOUND');
    $servers['be'] = array('whois.dns.be', 'too many', 'bevat', 'REGISTERED');
    $servers['co.uk'] = array('whois.nic.uk', 'too many', 'bevat niet', 'not been registered');
    $servers['biz'] = array('whois.biz', 'too many', 'bevat niet', 'Not found');
    $servers['au'] = array('whois.aunic.net', 'too many', 'bevat niet', 'No Data Found');
    $servers['eu'] = array('whois.eu', 'too many', 'bevat', 'REGISTERED');
    $servers['net'] = array('whois.verisign-grs.com', 'too many', 'bevat niet', 'No match for');
    
    ksort($servers); //dan staan ze netjes op alfabet
?>


whois.php

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
    include 'functions.php'; //de functies includen
    include 'config.php'; //en de config
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="functions.js"></script>
<link rel="stylesheet" type="text/css" media="screen, projection" href="style.css">
</head>
<body>

<div id='whoiswait'>
    <div class='outer'>
        <div class='inner'>
            <img src="status.gif"><br />
            Bezig met opvragen
        </div>
    </div>
</div>

<h1>WhoIs</h1>

<?php
    flush(); //zorgen dat bezig met laden wordt weergeven
    
    echo '<pre>'.
            check($_GET['url'], $_GET['ext'], $servers[$_GET['ext']][0], 'whois', $servers[$_GET['ext']][3], $servers[$_GET['ext']][1], $servers[$_GET['ext']][2]).
         '</pre>'; //echo de data
        
    echo "<script type='text/javascript'>
            if(document.getElementById('whoiswait'))
            {
                document.getElementById('whoiswait').style.display = 'none';
            }
          </script>"
; //zorg dat de status div verborgen wordt
?>

</body>
</html>


style.css

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
#demo
{
    background:#EBEADB;
    border:1px solid #CBC7B8;
    padding:10px;
    margin:10px 0px;
}
body
{
    font-family:verdana,arial,helvetica;
    font-size:80%;
    margin:20px;
    color:#000;
    background:#FFF;    
}
a, a:visited
{
    color:darkblue;
    text-decoration:none;
}
a:hover
{
    color:maroon;
    text-decoration:underline;
}
pre {
    font-size: 11px;
    font-family: Arial, Helvetica, sans-serif;
    background-color:#FCFAF6;
}
th, td {
    width: 33%;
}
.error
{
    color:maroon;
    font-weight: bold;
}
.vrij
{
    color:green;
    font-weight: bold;
}
#whoistable, input, select
{
    font-size:0.85em;
    font-family:verdana,arial,helvetica;
}
#whoistable
{
    border-bottom:1px solid #D4D0C8;
}
#whoistable th
{
    text-align:left;
}
#whoistable a, #whoistable a:visited
{
    color:#000;
    text-decoration:none;
}
#whoistable a:hover
{
    color: #999;
    text-decoration:underline;
}
h1
{
    font-family:arial,helvetica,sans-serif;
    font-size:1.8em;
    color:#7C765A;    
}
h2
{
    font-family:arial,helvetica,sans-serif;
    font-size:1.6em;
    color:#AEA991;    
}
.whoisform
{
    display:inline;    
}
#whoiswait
{

    text-align: center;
    position: absolute;
    top: 50%;
    width: 100%;
    overflow: visible;
    visibility: visible;
    display: block;
}

#whoiswait .outer
{
    margin-left: -200px;
    position: absolute;
    top: -60px;
    left: 50%;
    visibility: visible;
    width:400px;
}

#whoiswait .inner
{
    background-color:#FCFAF6;
    padding:30px;
    line-height:30px;
    border:1px solid #D4D0C8;
}

#whoisdetails
{
    font-family:verdana,arial,helvetica,sans-serif;;
    font-size:0.85em;
    padding:20px;
    border:1px solid #D4D0C8;
    background-color:#FCFAF6;
}
.linkbutton
{
    font-size:1.0em;
    width:80px;
}

.whoisrow1, .whoisrow1available
{
    background-color: #FCFAF6;
    border-top:1px solid #D4D0C8;
}
.whoisrow2, .whoisrow2available
{
    background:#FFF;
    border-top:1px solid #D4D0C8;
}

#verhuman
{
    text-align:center;
    border:1px solid #D4D0C8;
    background:#FCFAF6;
    padding:20px;
}
.verhuman
{
    font-size:2.2em;
}
.verhumanimg
{
    border:1px solid #000;
}

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.