[php] Whois en sockets

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • telefoontoestel
  • Registratie: Oktober 2002
  • Laatst online: 29-06-2024

telefoontoestel

Maak me gelukkig....Bel!!

Topicstarter
Ik probeer nu al een tijd een whois server te benaderen. Via fsockopen en via socket_create/socket_connect. In de RFC heb ik gelezen dat de whois port is gesteld op 43, en de 2 dns servers die ik ken zijn ns4.alkeninternet.nl j.root-servers.net

Nu lukt het me met geen van beide manieren. Dmv van socket_connect/socket_create krijg ik een error: Adress is invalid in its contents
Bij fsockopen krijg ik de error: Bad filedescriptor (9).

Kan iemand mij vertellen waarom het me niet lukt.

Hier 2 relevante stukjes code:

fsockopen
code:
1
2
3
4
5
6
7
$server = "ns4.alkeninternet.nl";
$port = 43;

$handle = @fsockopen($server, $port, $errno, $errstr, 10);
if(!$handle) die("Kon geen verbinding maken.<bR>\n".$errstr." (".$errno.")");
print "Verbinding met server.<br>\n";
@fclose($handle);


sockets
code:
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
$host = "j.root-servers.net";
$port = 43;

$time = time();

$socket = @socket_create(AF_INET, SOCK_STREAM, SOL_TCP);

if(!$socket) die("Unable to create socket");

if(!@socket_set_nonblock($socket)) die("Unable to set nonblock on socket");

$time = time();

while (!@socket_connect($socket, $host, $port)){
    $err = socket_last_error($socket);
    if ($err == 115 || $err == 114){
        if ((time() - $time) >= 10){
            socket_close($socket);
            die("Connection timed out.<Br>\nAdditional info: ".socket_strerror($err);
        }
        sleep(1);
        continue;
    }
    else {
        if ((time() - $time) >= 10){
            socket_close($socket);
            die("Connection timed out.<Br>\nAdditional info: ".socket_strerror($err);
        }
    }
}

if(!socket_set_block($socket)){
    socket_close($socket);
    die("Unabale to set blocking on socket");
}

print "Verbonden met socket.";
socket_close($socket);


Is er iemand die me hiermee verder kan helpen?

telefoontoestel


Acties:
  • 0 Henk 'm!

  • PrisonerOfPain
  • Registratie: Januari 2003
  • Laatst online: 26-05 17:08
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$Domain = 'tweakers.net';
$Server = 'whois.verisign-grs.net';

if (! $Socket = fsockopen ($Server, 43))
{
    die ('Could not connect to '.$Server.'.');
}
   
fwrite ($Socket, $Domain."\r\n");
   
$Result = '';
while (!feof ($Socket)) {
    $Result .= fread ($Socket, 1024);
}
  
fclose ($Socket);
  
echo nl2br ($Result);
?>

Doet het hier wel goed :), maar met jou whois servers wou hij niet :(

edit:

http://www.whoisservers.net/ is een lijst met whois servers

[ Voor 18% gewijzigd door PrisonerOfPain op 22-12-2003 17:18 ]


Acties:
  • 0 Henk 'm!

  • telefoontoestel
  • Registratie: Oktober 2002
  • Laatst online: 29-06-2024

telefoontoestel

Maak me gelukkig....Bel!!

Topicstarter
Ok. Merk dat ik idd foute servers gebruikte. Blijkbaar begreep de persoon aan wie ik het gevraagd had mij niet goed. Ga eens aan de slag met andere servers die ik nu heb gevonden.

Thnx :)

telefoontoestel