Elpost
Internet
1.15.2 Internet
fsockopen
Öppnar en socket som kan användas för
kommunikation. Se mer i network 
Exempel - HTTP kommunikation
<?php
$fp = fsockopen (
"www.enges.org", # adressen - ip går också
80, # port. 80 = HTTP
$errno, # för eventuella felnummer
$errstr, # eventuella felmeddelanden
30 # timeout tid innan vi skall ge upp
);
# prova öppna porten
if (!$fp )
{
# visa felmeddenande om inte det gick
echo "$errstr ($errno)<br>\n";
}
else
{
# skapa ett normalt HTTP GET kommando
# observera att en den alltid måste sluta
# med \r\n\r\n
$command = "GET /phpkurs/samples/demo2.htm ";
$command .= "HTTP/1.0\r\n";
$command .= "Host: www.enges.org\r\n\r\n";
# sänd detta
fputs ($fp, $command );
# läs resultatet 4096 byte åt gången
# det vi får är det som en browser får
# browsern brukar dock inte visa header informationen
while ( !feof( $fp ) )
{
echo nl2br(htmlentities(fgets ( $fp, 4096 )));
}
# stäng porten
fclose ( $fp );
}
?>
Exempel - Tid
<?php
$fp = fsockopen(
"udp://mail1.bet1.puv.fi", # protokoll och adress
13, # port - 13 = tid
$errno,
$errstr
);
if ( !$fp )
{
echo "ERROR: $errno - $errstr<br>\n";
}
else
{
fwrite( $fp,"\n" );
echo fread( $fp, 26 );
fclose( $fp );
}
?>
Listning 1.15.2.2 - samples/s104.php
ERROR: 0 - php_network_getaddresses: getaddrinfo failed: Name or service not known
Resultat av listning 1.15.2.2
Exempel - WhoIs
<?
$domain = "microsoft.com";
$domain = trim( $domain );
$fp = fsockopen(
"whois.networksolutions.com", # whois server
43, # whois porten
$errno,
$errstr,
30 # timeout
);
if ( !$fp ) # öppna porten
{
echo "$errstr ( $errno )";
}
else
{
fputs( $fp, "$domain\r\n" );
print "<pre>\r\n";
while ( !feof( $fp ) )
{
echo fread( $fp, 128 );
}
print "</pre>";
fclose ( $fp );
}
?>
|