Care este cel mai concis mod de a rezolva un nume de gazdă la o adresă IP într-un script Bash? Utilizez Arch Linux .
Comentarii
Răspuns
Puteți utiliza getent
, care vine cu glibc
(deci aproape sigur îl aveți pe Linux) . Acest lucru se rezolvă folosind gethostbyaddr / gethostbyname2, și astfel se va verifica și /etc/hosts
/ NIS / etc:
getent hosts unix.stackexchange.com | awk "{ print $1 }"
Sau, după cum a spus Heinzi mai jos, puteți utiliza dig
cu argumentul +short
(interogă direct serverele DNS, nu privește /etc/hosts
/ NSS / etc):
dig +short unix.stackexchange.com
Dacă dig +short
nu este disponibil, dintre următoarele ar trebui să funcționeze. Toate aceste interogări DNS direct și ignoră alte mijloace de rezoluție:
host unix.stackexchange.com | awk "/has address/ { print $4 }" nslookup unix.stackexchange.com | awk "/^Address: / { print $2 }" dig unix.stackexchange.com | awk "/^;; ANSWER SECTION:$/ { getline ; print $5 }"
Dacă doriți să imprimați doar un IP, adăugați pentru fluxul de lucru al awk
.
dig +short unix.stackexchange.com | awk "{ print ; exit }" getent hosts unix.stackexchange.com | awk "{ print $1 ; exit }" host unix.stackexchange.com | awk "/has address/ { print $4 ; exit }" nslookup unix.stackexchange.com | awk "/^Address: / { print $2 ; exit }" dig unix.stackexchange.com | awk "/^;; ANSWER SECTION:$/ { getline ; print $5 ; exit }"
Comentarii
- În mod implicit, utilizarea dig funcționează numai cu ipv4, unde gazda oferă atât răspunsuri ipv4, cât și ipv6. Acest lucru ar putea fi neașteptat. Puteți încerca
host www.google.com
,dig +short www.google.com
,host ipv6.google.com
,dig +short ipv6.google.com
,host www.facebook.com
,dig +short www.facebook.com
. - DIG nu funcționează, dacă este un CNAME nu va returna adresa IP.
- Uneori,
host
poate fi expirat și nu returnează nimic. Pentru unele domenii,dig +short
poate returna aliasul domeniului în prima linie. Deci, pentru a vă asigura că ieșirea este un IPv4 adresa, utilizațidig +short example.com | grep -Eo '[0-9\.]{7,15}' | head -1
. - Utilizarea
getent hosts <host>
este incorectă, ca și pentru instan se poate da o adresă IPv6 în timp ce IPv6 nu funcționează ‘. Soluția corectă este să utilizațigetent ahosts <host>
pentru a încerca atât IPv6, cât și IPv4, dacă este necesar. - Merită menționat: host, dig și nslookup pare să vorbească direct cu serverele listate în resolv.conf, întrucât ” gazdele getent ” respectă atât fișierul gazdelor locale, cât și cache-ul la nivel de bibliotecă (cum ar fi nscd) dacă este activat .
Răspuns
Cu host
din pachet dnsutils :
$ host unix.stackexchange.com unix.stackexchange.com has address 64.34.119.12
( Corectat numele pachetului conform comentariilor. Ca notă, alte distribuții au host
în diferite pachete: Debian / Ubuntu bind9-host , openSUSE bind-utils , Frugalware bind .)
Comentarii
- Consultați intrarea resolverip de mai jos dacă trebuie să rezolvați ceva care nu este în DNS (de exemplu / etc / hosts)
- Rețineți că
host
returnează uneori ieșirea pe mai multe linii (în cazul redirecționărilor), ‘ veți dorihost unix.stackexchange.com | tail -n1
dacă doriți doar linia cu adresa IP. - Există mai multe versiuni ale ” gazdă ” cu diferite formate de ieșire. De exemplu. majoritatea sistemelor par să aibă versiunea BIND9, dar serverul meu Ubuntu 10.04 LTS are o versiune complet diferită cumva ..
- dacă nu aveți ‘ nu aveți
host
saudig
instalat puteți utiliza ping în loc, care este întotdeauna disponibil:ping unix.stackexchange.com -c 1 -q 2>&1 | grep -Po "(\d{1,3}\.){3}\d{1,3}"
acest lucru nu are nevoie de pachete suplimentare se instalează pe majoritatea jocurilor Unix / Linux. - Acest răspuns merită un vot negativ serios.
host
este un instrument DNS (similar cunslookup
), deci caută numai gazde în DNS, nu în ex./etc/hosts
. Deci, este NU un răspuns la întrebarea OP ‘.
Răspuns
Am pe instrumentul meu un instrument care pare să facă treaba. Pagina manuală arată că pare să vină cu mysql … Iată cum îl puteți folosi:
resolveip -s unix.stackexchange.com 64.34.119.12
Valoarea returnată a acestui instrument este diferită de 0 dacă numele gazdei nu poate fi rezolvat:
resolveip -s unix.stackexchange.coma resolveip: Unable to find hostid for "unix.stackexchange.coma": host not found exit 2
UPDATE Pe fedora, vine cu mysql-server:
yum provides "*/resolveip" mysql-server-5.5.10-2.fc15.x86_64 : The MySQL server and related files Dépôt : fedora Correspondance depuis : Nom de fichier : /usr/bin/resolveip
Cred că ar crea o dependență ciudată pentru scriptul tău …
Comentarii
- Aceasta pare a fi singura soluție de aici care folosește versiunea OS ‘ în rezolvare – deci funcționează pentru / etc / hosts, precum și DNS.
-
getent
, așa cum este detaliat în celălalt răspuns, se uită și la / etc / hosts și vine cu glibc, deci nu are dependențe de un sistem Linux. - Nu aș folosi resolverip deoarece creați o dependență de un alt pachet. getent este instalat în mod implicit. host, nslookup și dig sunt toate în pachete opționale. Cu siguranță folosiți getent într-un script.
- îmi place acest răspuns, dar nu ‘ nu returnează ipv6
Răspuns
Următoarea comandă care folosește dig
vă permite să citiți rezultatul direct fără sed / awk / etc. magie:
$ dig +short unix.stackexchange.com 64.34.119.12
dig
este de asemenea inclus în dnsutils
pachet.
Notă : dig
are o valoare returnată de 0
, chiar dacă numele nu a putut fi rezolvat. Astfel, ar trebui să verificați dacă ieșirea este goală în loc să verificați valoarea returnată:
hostname=unix.stackexchange.com ip=`dig +short $hostname` if [ -n "$ip" ]; then echo IP: $ip else echo Could not resolve hostname. fi
Nota 2 : Dacă un nume de gazdă are mai multe adrese IP (încercați debian.org
, de exemplu), toate vor fi returnată. Această „problemă” afectează până acum toate instrumentele menționate în această întrebare:
Comentarii
- Rețineți că dacă un domeniu are o intrare CNAME domeniul său poate fi tipărit în prima linie în loc de o adresă IP.
Răspuns
getent hosts unix.stackexchange.com | cut -d" " -f1
Comentarii
- Luați în considerare și
ahosts
,ahostsv4
,ahostsv6
cugetent
. -
cut
nu va fi pentru getent ‘ s, care utilizează\t
pentru a separa coloanele. Acesta este cazul Solaris. - @ceving: Pe Sola ris s-ar putea să trebuiască să rulați
cut
fără-d
(implicit la\t
ca delimitator). Pe Linux, ‘ este spațiu, astfel linia de mai sus funcționează.
Răspuns
Soluțiile date până acum funcționează mai ales în cazurile mai simple: numele gazdei se rezolvă direct la o singură adresă IPv4. Acesta ar putea fi singurul caz în care trebuie să rezolvați numele gazdei, dar dacă nu, mai jos este o discuție cu privire la unele cazuri pe care ar trebui să le gestionați.
Chris Down și Heinzi au discutat pe scurt cazul în care numele gazdei rezolvă la mai multe adrese IP. În acest caz (și altele de mai jos), scriptarea de bază în ipoteza că un nume de gazdă se rezolvă direct la o singură adresă IP se poate rupe. Mai jos, un exemplu cu un nume de gazdă care se rezolvă la mai mult de o singură adresă IP:
$ host www.l.google.com www.l.google.com has address 209.85.148.147 www.l.google.com has address 209.85.148.103 www.l.google.com has address 209.85.148.99 www.l.google.com has address 209.85.148.106 www.l.google.com has address 209.85.148.105 www.l.google.com has address 209.85.148.104
Dar ce este www.l.google.com
? Aici trebuie introdus cazul alias . Să verificăm exemplul de mai jos:
$ host www.google.com www.google.com is an alias for www.l.google.com. www.l.google.com has address 74.125.39.103 www.l.google.com has address 74.125.39.147 www.l.google.com has address 74.125.39.105 www.l.google.com has address 74.125.39.99 www.l.google.com has address 74.125.39.106 www.l.google.com has address 74.125.39.104
Deci www.google.com
nu se rezolvă direct la adresele IP, ci la un alias care se rezolvă el însuși la mai multe adrese IP. Pentru mai multe informații despre aliasuri, verificați aici . Desigur, este posibil cazul în care un alias are o singură adresă IP. , după cum se arată mai jos:
$ host g.www.ms.akadns.net g.www.ms.akadns.net is an alias for lb1.www.ms.akadns.net. lb1.www.ms.akadns.net has address 207.46.19.190
Dar se pot înlătura aliasurile?Răspunsul este da:
$ host www.microsoft.com www.microsoft.com is an alias for toggle.www.ms.akadns.net. toggle.www.ms.akadns.net is an alias for g.www.ms.akadns.net. g.www.ms.akadns.net is an alias for lb1.www.ms.akadns.net. lb1.www.ms.akadns.net has address 207.46.19.254 $ host www.google.fr www.google.fr is an alias for www.google.com. www.google.com is an alias for www.l.google.com. www.l.google.com has address 74.125.39.147 www.l.google.com has address 74.125.39.103 www.l.google.com has address 74.125.39.99 www.l.google.com has address 74.125.39.106 www.l.google.com has address 74.125.39.104 www.l.google.com has address 74.125.39.105
Nu am găsit niciun exemplu în care un nume de gazdă se rezolvă la un alias care nu se rezolvă la o adresă IP, dar cred că caz poate apărea.
Mai mult decât mai multe adrese IP și pseudonime, mai există alte cazuri speciale … ce zici de IPv6? Puteți încerca:
$ host ipv6.google.com ipv6.google.com is an alias for ipv6.l.google.com. ipv6.l.google.com has IPv6 address 2a00:1450:8007::68
Unde numele gazdei ipv6.google.com
este un nume de gazdă numai pentru IPv6. Ce se întâmplă cu numele de gazdă dual-stack:
$ host www.facebook.com www.facebook.com has address 66.220.153.15 www.facebook.com has IPv6 address 2620:0:1c08:4000:face:b00c::
Din nou despre IPv6, dacă gazda dvs. este numai IPv4, puteți rezolva în continuare adresele IPv6 (testate doar pe un IPv4 WinXP și cu ipv6.google.com, îl puteți încerca pe Linux). În acest caz, rezoluția reușește, dar un ping eșuează cu un mesaj de eroare de gazdă necunoscut . Acesta ar putea fi un caz în care scripturile dvs. nu reușesc.
Sper că aceste remarci au fost utile.
Comentarii
- Ce grozav completează răspunsul acceptat, arătând toate cazurile marginale cu care s-ar putea dori să se ocupe în scripting. Versiunea mea
host
nici nu menționează ” are adresa ” pentru casetele mele.
Răspuns
Pentru a evita problema cu pseudonimele și pentru a obține întotdeauna o singură adresă IP gata de utilizare:
python -c "import socket; print socket.gethostbyname("www.example.com")"
Comentarii
- Am făcut o funcție bash pentru a rămâne în bashrc din acest răspuns: gist.github.com/brycepg/ba117a37de53906dc8fcc312bd7d5fee
-
python3 -c 'import socket; print(socket.gethostbyname("www.example.com"))'
Răspuns
ping -q -c 1 -t 1 your_host_here | grep PING | sed -e "s/).*//" | sed -e "s/.*(//"
funcționează fără dependențe de alte sisteme (și pentru gazde specificate în / etc / hosts)
Comentarii
- Am nevoie de ping, deoarece am nevoie de valoarea din fișierul hosts, dar modelul sed se analizează corect, dar acest lucru a funcționat ping – q -c 1 -t 1 gazdă_aici | grep PING | sed -e ” s / ^ [^ (] * [(] // ” | sed -e ” s / [)]. * $ // ”
- Pentru a rezolva ceva din rețeaua mea de domiciliu, cum ar fi myhostname.local, acest lucru funcționează pentru acesta este cel mai bun răspuns.
- Pot sugera și acest lucru:
ping -q -c 1 -t 1 bahface.local | grep -m 1 PING | cut -d "(" -f2 | cut -d ")" -f1
-
getent <ahosts|ahostsv4|ahostsv6|hosts> <hostname>
funcționează pentru declarații și în/etc/hosts
… și ‘ este instrumentul go-to-tool pentru toate tipurile de baze de date de sistem (passwd, grup, pseudonime, servicii).
Răspuns
Simplu, dar util :
-
getent ahostsv4 www.google.de | grep STREAM | head -n 1 | cut -d " " -f 1
-
getent ahostsv6 www.google.de | grep STREAM | head -n 1 | cut -d " " -f 1
-
getent hosts google.de | head -n 1 | cut -d " " -f 1
Toate comenzile vor rezolva o adresă IP dacă gazda există încă. Dacă gazda indică un CNAME, va primi și IP în acel case.
Prima comandă returnează adresa IPv4 rezolvată.
A doua comandă returnează res olv adresă IPv6.
A treia comandă va returna adresa preferată a proprietarului, care poate fi o adresă IPv4 sau o adresă IPv6.
Comentarii
- De departe cel mai simplu. Și este disponibil în mod implicit. Nu ca
host
care necesită instalareabindutils
Răspuns
Iată o ușoară variație a abordării ping
care ia în considerare „gazda necunoscută” (prin canalizare prin stderr) și folosește tr
pentru a evita utilizarea sed
regexps:
ping -c1 -t1 -W0 www.example.com 2>&1 | tr -d "():" | awk "/^PING/{print $3}"
este important să captați valoarea de ieșire, apoi vor funcționa următoarele (deși mai puțin elegante):
ping -c1 -t1 -W0 www.example.com &>/dev/null && ping -c1 -t1 -W0 www.example.com 2>&1 | tr -d "():" | awk "/^PING/{print $3}"
Comentarii
- Îmi place această soluție, deoarece funcționează fără alte instrumente suplimentare.
Răspuns
Pentru a completa răspunsul lui Chris Down și pentru a adresa comentariile jfgagne despre aliasuri (posibil înlănțuite), iată o soluție care:
- ia în considerare mai multe adrese IP
- ia în considerare unul sau mai multe aliasuri (CNAME)
- nu interogă fișierul
/etc/hosts
( în cazul meu nu am vrut); pentru a-l interoga, soluția python dbernt este perfectă) -
nu folosește awk / sed
dig +short www.alias.com | grep -v "\.$" | head -n 1
Returnează întotdeauna prima adresă IP sau tringul gol dacă nu este rezolvat. cu versiunea dig:
$ dig -v DiG 9.8.1-P1
Comentarii
- Mulțumesc, alte răspunsuri presupun că ” dig + scurt ” întotdeauna returnează o singură adresă IP. Nu ‘ contabilizau CNAME.
Răspuns
php -r "echo gethostbyname("unix.stackexchange.com");"
Comentarii
- funcționează, dar necesită instalarea php-ului pe terminalul dvs.
- poate fi util pe un container tipic de andocare php unde ” gazdă „, ” dig ” etc. nu sunt disponibile
Răspuns
Aș fi dorit să adaug acest lucru ca un comentariu la Andrew McGregor Re: ping. Cu toate acestea, nu mă va lăsa, așa că trebuie să adaug acest lucru ca un alt răspuns. (Dacă cineva îl poate muta într-un comentariu, nu ezitați să.)
Aceasta este o altă variantă, folosind doar ping și grep :
ping -q -c1 -t1 your_host_here | grep -Eo "([0-9]+\.?){4}"
grep -E
pentru expresie regulată extinsă și grep -o
la returnează numai partea potrivită. regexp în sine caută una sau mai multe cifre ([0-9]+
) și opțional un punct (\.?
) de patru ori ( {4}
)
Răspuns
Puteți utiliza host
:
hostname=example.org # strips the IP IP=$( host ${hostname} | sed -e "s/.*\ //" ) # checks for errors if [ $? -ne 0 ] ; then echo "Error: cannot resolve ${hostname}" 1>&2 exit 1; fi
Răspuns
aici „rețeta Bash Am gătit folosind alte răspunsuri populare – mai întâi încearcă /etc/hosts
, apoi revin la nslookup:
resolveip(){ local host="$1" if [ -z "$host" ] then return 1 else local ip=$( getent hosts "$host" | awk "{print $1}" ) if [ -z "$ip" ] then ip=$( dig +short "$host" ) if [ -z "$ip" ] then echo "unable to resolve "$host"" >&2 return 1 else echo "$ip" return 0 fi else echo "$ip" return 0 fi fi }
Comentarii
- Pentru a fi clar,
getent hosts
isn ‘ nu este doar o căutare în / etc / hosts – este ‘ un apel complet de rezolvare DNS către gethostbyaddr (3) și ‘ este foarte puțin probabil să eșueze într-un caz în caredig
va reuși. Consultați pagina manuală pentru getent . - @Stuart are dreptate – am ‘ am aflat mult de când am scris acest lucru și am simplificat prea mult o comandă puternică.
getent
rămâne preferatul meu, deși îmi place șidig +short
Răspuns
nmap -sP 192.168.178.0/24|grep YOUR_HOSTNAME|sed -n "s/.*[(]\([0-9\.]*\)[)].*/\1/p"
a fost soluția pe care am găsit-o fără server DNS
Răspuns
Poate că nu este cel mai concis, dar pare a fi robust și eficient:
# $(get_host_dns_short "google.com") # # Outputs the IPv4 IP Address of a hostname, resolved by DNS. Returns 0 if DNS # responded successfully; 1 otherwise. Will mask error output. function get_host_dns_short() { ( set -o pipefail host -4 -W1 -t A "$1" 2>/dev/null | awk "/has address/ { print $NF; exit }" ) && return 0 || return 1 }
Aceasta va genera un singur IPv4 IP, precum și returnarea 1
în caz de eșec, în timp ce mascați ieșirea stderr.
Puteți să o utilizați astfel:
GOOGLE_IP="$(get_host_dns_short "google.com")" if [[ $? -eq 0 ]]; then echo "Google"s IP is ${GOOGLE_IP}." else echo "Failed to resolve Google"s IP." fi
IP-ul Google este 216.58.192.46.
Dacă doriți o adresă IPv6, înlocuiți -4
cu -6
.
Răspundeți
dig +noall +answer +nocomments example.com | awk "{printf "%-36s\t%s\n", $1, $5 }"
Comentarii
- Un anumit context în ce mod ar îmbunătăți acest răspuns față de cele deja existente fii grozav. De asemenea, vă rugăm să indentați comenzile cu 4 spații (cf. sintaxa de reducere).
Răspuns
dig este prea lent, nslookup este mult mai rapid
nslookup google.com | grep -Po "Address:\s*[0-9.]+" | tail -1 | sed -e "s/Address:\s*//g"
Răspuns
1 linie rezolvă o listă a hostname
for LINE in `cat ~/Desktop/mylist`; do a=$(nslookup $LINE | awk "/^Address: / { print $1 }"); echo $a >> ~/Desktop/ip; done
Răspuns
Fac asta tot timpul pe Mac care nu are getent
. ping
pare un hack. Aș dori să țin cont și de /etc/hosts
.
Așadar, am scris un wrapper stupid pentru dns.lookup
pentru dvs. care aveți instalat Node.js pentru a furniza o CLI:
$ npm install -g lookup-hostname $ lookup google.com 62.243.192.89
Comentarii
- 60% șanse de rupere înainte de a ajunge aproape de o hotărâre.
- @dotbit ai putea elabora? ‘ am folosit acest săptămânal de la ‘ 17 și nu am avut niciodată probleme.
- @Jensen, dar tu ‘ este singurul vreodată, ca întotdeauna. Ceilalți dintre noi, de obicei, se confruntă cu FAIL într-un fel sau altul și întotdeauna.
- ” ca întotdeauna ” Ce vrei să spui cu asta? ” Restul dintre noi ” Cine ‘ este că ? ” rulați în FAIL ” Ce problemă specifică vedeți? Sunt ‘ curios.
Răspuns
Nu ” Nu știu cel mai simplu mod pentru un script bash, dar dacă doriți să rezolvați un nume de gazdă și să vedeți dacă gazda este activată, utilizați ping
!
ping -a hostname -c 1
Va ping
gazda o dată și va rezolva numele gazdei la adresa IP.
$ ping -a www.google.com -c 1 PING www.google.com (216.58.211.132) 56(84) bytes of data. 64 bytes from arn09s10-in-f4.1e100.net (216.58.211.132): icmp_seq=1 ttl=54 time=1.51 ms
Comentarii
- este bine să folosiți ping, pentru că toată lumea îl are, dar trebuie să filtrați partea IP din ieșiri, dacă doriți să o utilizați într-un script.
Răspundeți
Da, există deja multe răspunsuri, dar lipsește o soluție care utilizează perl:
perl -MSocket -MNet::hostent -E "say inet_ntoa((gethost shift)->addr)" unix.stackexchange.com
Într-un script bash ar putea fi folosit astfel:
#!/bin/bash ipaddr=$(perl -MSocket -MNet::hostent -E "say inet_ntoa((gethost shift)->addr)" unix.stackexchange.com) echo $ipaddr
Modulele utilizate aici sunt module de bază, deci ar trebui să fie disponibile oriunde fără instalarea cu CPAN.
Comentarii
-
perl -MSocket -MNet::hostent -E 'say inet_ntoa((gethost shift)->addr)' unix.stackexchange.com 2>/dev/null
este mult mai curat. dar nimeni în afară de noi doi nu folosește p ö rl, toți ceilalți folosesc scriptul Pascal, desigur. - De fapt, prefer să văd mesajele de eroare dacă există ceva merge prost.
Can't call method "addr" on an undefined value
nu este ‘ exact exact cel mai bun mesaj de eroare, dar poate oferi un indiciu despre problemă.
Răspuns
#!/bin/bash systemd-resolve RT.com -t A | awk "{ print $4 ; exit }" systemd-resolve unix.stackexchange.com -t A --legend=no | awk "{ print $4 ; exit }" resolveip -s RT.com dig +short RT.com host RT.com | awk "/has address/ { print $4 }" nslookup RT.com | awk "/^Address: / { print $2 }" ping -q -c 1 -t 1 RT.com | grep PING | sed -e "s/).*//" | sed -e "s/.*(//" ruby -rresolv -e " print Resolv.getaddress "RT.com" " python2 -c "import socket; print socket.gethostbyname("RT.com")" perl -MSocket -MNet::hostent -E "say inet_ntoa((gethost shift)->addr)" RT.com 2>/dev/null php -r "echo gethostbyname( "RT.com" );" echo " all do work for me - take your pick! "
Comentarii
- Versiunea ruby imprimă ghilimele în jurul adresei IP — probabil
print
ar trebui utilizat în loc dep
. - thx, @Slaven Rezic și nu ezitați să votați. din nou, aici, în partea de jos, scriptul poate fi mai vizibil de fapt … 😉
Răspunde
host -t a cisco.com
această comandă va afișa adresa IP (va reslove domeniul către IP)
Răspuns
În afară de soluția de mai sus, puteți traduce mai multe nume de gazdă în ip prin scriptul de mai jos, singura dependență este comanda „ping” în nucleul Unix:
getip(){ ping -c 1 -t 1 $1 | head -1 | cut -d " " -f 3 | tr -d "()" 2>&1 | tee >> /tmp/result.log & } getip "hostname.number1.net" getip "hostname.number2.net" getip "hostname.number3.net" getip "hostname.number4.net" getip "hostname.number5.net" getip "hostname.number6.net" getip "hostname.number7.net" getip "hostname.number8.net"
$ cat /tmp/result.log ABC.DEF.GHI.XY1 ABC.DEF.GHI.XY2 ABC.DEF.GHI.XY3 ABC.DEF.GHI.XY4 ABC.DEF.GHI.XY5 ABC.DEF.GHI.XY6 ABC.DEF.GHI.XY7 ABC.DEF.GHI.XY8
getent <ahosts|ahostsv4|ahostsv6|hosts> <hostname>
este undeva acolo jos, lângă fund. ‘ este cel mai simplu, nu necesită pachete suplimentare și este mai ușor de analizat și dintr-un script Bash.getent hosts somehost
, când rulează acest în timp ce este pesomehost
va produce o adresă IPv6 , care este diferită de modul în care majoritatea celorlalte instrumente (ping
,ssh
cel puțin) rezolvă nume și rupe unele lucruri. Utilizațiahosts
în loc dehosts
.ahostsv4
) sau adrese IPv6 (ahostsv6
)? Personal nu găsesc nimic în neregulă cu solicitarea nespecifică de returnare a IPv6. Codul dvs. ar trebui să fie pregătit. IPv6 este disponibil de mai bine de 20 de ani acum.hosts
, iar până acum 4 persoane au votat comentariul vinc17 ‘ care exprimă durerea cauzată de ” brusc IPv6 „. Pregătirea pentru IPv6 nu este întotdeauna problema: multe programe au nevoie de o modalitate de a determina dacă două nume / adrese se referă la aceeași gazdă. Aceștia pot folosi fie potrivirea simplă a șirurilor, fie trebuie să știe multe despre rețea pentru a găsi răspunsul ” adevărat „. Acesta din urmă este un câmp minat, atât de multe programe și sisteme terță parte – pe care nu le controlez – le folosesc pe primul.