Ce face net_get_interfaces
net_get_interfaces listează plăcile de rețea ale mașinii. Cheile tabloului sunt numele interfețelor (lo, eth0, wlan0). Fiecare are up (dacă este pornită) și unicast, lista adreselor, cu family, address și netmask.
family este familia adresei: AF_INET (2) pentru IPv4. Valoarea pentru IPv6 diferă între sisteme (10 pe Linux, 30 pe macOS), iar unele intrări nu au adresă.
Ce returnează
Un tablou cu interfețele sau false la eroare.
Exemple
Exemplul 1: Adresele IPv4 ale serverului
<?php
foreach (net_get_interfaces() as $nume => $interfata) {
foreach ($interfata["unicast"] ?? [] as $adresa) {
if ($adresa["family"] === 2) {
echo "$nume: " . $adresa["address"] . "/" . $adresa["netmask"] . "\n";
}
}
}
Rezultat posibil (depinde de server)
lo: 127.0.0.1/255.0.0.0
eth0: 10.0.0.12/255.255.255.0
Greșeli frecvente
- Citești
$adresa["address"]fără verificare. Unele intrări nu au cheiaaddress(pe macOS, de exemplu, intrarea pentru adresa fizică a plăcii).
Comenzi înrudite
gethostname: Returnează numele calculatorului (serverului) pe care rulează scriptul.gethostbyname: Află adresa IPv4 a unui domeniu, de exemplu adresa IP din spatele unui site.