suchen
Heimphp教程PHP开发Socket-Programmierung mit Perl-Sprache

Netzwerkprogrammierung ist eine mysteriöse und komplexe Kunst, aber auch sehr interessant. Die Perl-Sprache bietet eine Fülle von TCP/IP-Netzwerkfunktionen, die alle
direkt von den Socket-Bibliotheksfunktionen der C-Sprache abgeleitet sind
Da die Socket-Bibliotheksfunktionen der Perl-Sprache und der C-Sprache ähnlich sind Im Stil und in der Verwendung werde ich die Perl-Sprache für die Socket-Programmierung verwenden, und natürlich
Ich werde auch die C-Sprache für die Socket-Programmierung verwenden
Das Folgende ist eine Liste verwandter Socket-Bibliotheksfunktionen in der Perl-Sprache:
Anleitung zur Verwendung von Funktionsprototypen
accept(NEWSOCKET,GENERICSOCKET) akzeptiert die angeforderte Socket-Verbindung. Bei Erfolg wird die Netzwerkadresse in komprimierter Form zurückgegeben.
Beispiel:
if(!$ Connect=accept(NEW,HANDLE))
{
die "Connectionfailed:$!
";
}
bind(SOCKET,NAME) stellt die Bindung zwischen NAME und SOCKET her, wobei NAME sollte die komprimierte Adresse sein, die dem richtigen Socket-Typ entspricht.
Bei Erfolg wird true zurückgegeben, andernfalls wird false zurückgegeben.
Bei Verwendung von Socket für die Netzwerkprogrammierung ist diese Funktion sehr wichtig, da sie die Zuordnung zwischen dem Socket-Handle herstellt und eine Adresse im Netzwerk.
Beispiel:
bind(SH,$SocketAddress);
connect(SOCKET,NAME) versucht, mit einem anderen Prozess zu kommunizieren, der die Funktion „accept()“ aufgerufen hat und darauf wartet Stellen Sie eine Verbindung her.
Bei Erfolg wird „True“ zurückgegeben; andernfalls sollte „NAME“ die komprimierte Adresse sein, die dem richtigen Typ des SOCKET-Handles entspricht.
connect(SOCK,$address)||die „ Can'tconnectwithremotehost:$!
";
gethostbyaddr(ADDRESS,TYPE) wandelt die komprimierte Netzwerkadresse in einen Namen und eine Adresse um, die für Menschen leichter lesbar und verständlich sind.
Wenn nur die IP-Adresse des Wenn der Host bekannt ist, können Sie mit dieser Funktion den Hostnamen und andere Netzwerkinformationen abfragen. Es wird eine Liste mit den folgenden Informationen zurückgegeben:
($name,$alias,$addrtype,$length,$address)
Dabei ist $name der Hostname, der der IP-Adresse entspricht, und $alias ist der andere Name, der $name Alias ​​entspricht, $addrtype ist der Typ der Netzwerkadresse, $length ist die Länge der
-Adresse und $address ist eine Liste komprimierter IP-Adressen.
Beispiel:
$PackedAddress=pack("C4",$ IPAddr);
($name,$alias,$addrtype,$length,$address)
=gethostbyaddr($PackedAddress,2);
gethostbyname(NAME) ähnelt der Funktion gethostbyaddr(), aber hier wird der Hostname als Parameter verwendet.
Beispiel:
$Host="stuff.com";
($name,$alias,$addrtype,$length,$adresse)
=gethostbyname($Host);
@IP =unpack("C4",$address[0]);
$HostIP=join(".",@IP);

Der Originalcode des Programms zur Überprüfung des E-Mail-Passworts
Der folgende Code wurde auf den beiden POP3-Servern 263.net und pop.netease.com unter zwei Betriebssystemen streng getestet und erwies sich als erfolgreich.
Erste Art:
Betriebssystem: Windows98 chinesische Version
WWW-Server : Apache1.3.9forWin
Perl-Interpreter: ActiveStateToolCorp's PerlforWin32, version5.005_03builtforMSWin32-x86-object
Zweiter Typ:
Betriebssystem: RedHatlinux6.1
WWW-Server: Apache1.3.6forLinux
Perl Interpreter: version5.005_03builtfori386-linux

#!/usr/bin/perl
#test.pl
#Authorhomepage:http://spot.126.com
usestrict;
useSocket;

my$pop3server="263.net";
my$port=110;

$|=1;
PRint"Content-type:text/ html

";
print"POP3
";
print "
";


my($a,$name,$aliases, $proto,$type,$len,$thataddr,$thisaddr,$i);
my$AF_INET=2;
my$SOCK_STREAM=1;
my$sockaddr="Sna4x8";

($name,$aliases,$proto)=getprotobyname("tcp");
($name,$ aliases,$port)=getservbyname($port,"tcp")
es sei denn $ port=~/^d $/;;
($name,$aliases,$type,$len,$thataddr)= gethostbyname($pop3server);

my$this=pack($sockaddr ,$AF_INET,12345,$thisaddr);
my$that=pack($sockaddr,$AF_INET,$port,$thataddr );

my$mysocket=socket(S,$AF_INET,$ SOCK_STREAM,$proto);
if($mysocket)
{
}
else
{
print „Cannot open socket:$!“;
exit(0) ;
}

my$mybind=bind(S,$this);
if($mybind )
{
}
else
{
print"Bindung nicht möglich! :$!";
exit(0);
}

my$myconnect=connect(S,$that);
if($myconnect)
{
}
else
{
print"Verbindungsfehler:$!";
exit(0);
}

my$BUF="";
my $SenderIP=recv(S,$BUF,596,0);
if($SenderIP)
{
}
else
{
print „Empfangsfehler: $!“ ;
exit(0);
}

if(substr($BUF,0,3)eq" OK")
{
}
else
{
print"POP3-Serverfehler!

";
exit(0);
}

my$BUFFER="USERzhangsan";
$BUFFER. =chr(13);
$BUFFER.=chr(10);

my$SENVAL=send(S,$BUFFER,0);
if($SENVAL)
{
}
else
{
print"Sendefehler: $!";
exit(0);
}

my$BUF="";
my$SenderIP=recv(S,$BUF,4096,0);
if($SenderIP)
{
}
else
{
print"Empfangsfehler: $!";
exit(0);
}

if(substr($BUF,0,3)eq" OK")
{
}
else
{
print"Kein solches Konto!

";
exit(0);
}

$BUFFER="PASS12345678";
$BUFFER.=chr(13);
$BUFFER.=chr(10);


my$SENVAL=send(S,$BUFFER,0);
if($ SENVAL)
{
}
else
{
print „Sendefehler: $!“;
exit(0);
}

$BUF ="";
my$SenderIP=recv(S,$BUF,196,0);
if($SenderIP)
{
}
else
{
print „Empfangsfehler: $!“;
exit(0);
}

if(substr($BUF,0,3)eq" OK")
{
}
else
{
print „Falsches Passwort!“;
exit(0);
}

print Das Passwort ist korrekt!

Das Obige ist der Inhalt der Socket-Programmierung mit der Perl-Sprache. Weitere verwandte Artikel finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

SublimeText3 Linux neue Version

SublimeText3 Linux neue Version

SublimeText3 Linux neueste Version

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.