Ce face getprotobyname / getprotobynumber
Fiecare protocol IP are un număr: icmp 1, tcp 6, udp 17. getprotobyname dă numărul după nume, iar getprotobynumber numele după număr. Datele vin din /etc/protocols.
Sunt folosite mai ales cu extensia sockets, de exemplu în socket_create(AF_INET, SOCK_STREAM, getprotobyname("tcp")).
Parametri
| Parametru | Descriere |
|---|---|
$protocol |
Numele protocolului. La getprotobynumber: numărul lui. |
Ce returnează
Numărul (sau numele, la getprotobynumber) ori false dacă protocolul nu există.
Exemple
Exemplul 1: În ambele sensuri
<?php
foreach (["icmp", "tcp", "udp"] as $nume) {
echo "$nume = " . getprotobyname($nume) . "\n";
}
echo "17 = " . getprotobynumber(17) . "\n";
var_dump(getprotobynumber(999));
Rezultat
icmp = 1
tcp = 6
udp = 17
17 = udp
bool(false)
Greșeli frecvente
- Confunzi numărul protocolului cu portul.
getprotobyname("tcp")este 6, nu un port. Pentru porturi foloseștegetservbyname.
Comenzi înrudite
getservbyname / getservbyport: Află portul standard al unui serviciu (http, ssh, smtp) sau, cu getservbyport, serviciul unui port.fsockopen / pfsockopen: Deschide o conexiune TCP (sau UDP, SSL) către un server și o returnează ca stream, pentru fwrite și fgets.