Hvordan kan jeg løse et værtsnavn til en IP-adresse i et Bash-script?

Hvad er den mest kortfattede måde at løse et værtsnavn til en IP-adresse i et Bash-script på? Jeg bruger Arch Linux .

Kommentarer

  • Skam, at getent <ahosts|ahostsv4|ahostsv6|hosts> <hostname> svarer er et eller andet sted dernede nær bunden. Det ‘ er det enkleste, kræver ingen ekstra pakker og er lettere at parse fra et Bash-script også.
  • @ 0xC0000022L: Den nye skam er, at svaret antyder, at getent hosts somehost, når kører denne , mens den er på somehost producerer en IPv6-adresse , som er forskellig fra, hvordan de fleste andre værktøjer (ping, ssh i det mindste) løse navne og bryde nogle ting. Brug ahosts i stedet for hosts.
  • @j_random_hacker: der forhindrer dig i at anmode specifikt om IPv4 (ahostsv4) eller IPv6 (ahostsv6) adresser? Personligt finder jeg intet galt med den uspecifikke anmodning om at returnere IPv6. Din kode skal udarbejdes. IPv6 har været derude i mere end 20 år nu.
  • @ 0xC0000022L: Ingen ” holder mig ” fra gør det, men svaret antyder specifikt hosts, og indtil videre har 4 personer opstemt vinc17 ‘ s kommentar, der udtrykker smerten forårsaget af ” pludselig IPv6 “. At være forberedt på IPv6 er ikke altid problemet: mange programmer har brug for en måde at afgøre, om to navne / adresser henviser til den samme vært. De kan enten bruge simpel strengtilpasning, eller de skal vide meget om netværket for at finde ” true ” svaret. Sidstnævnte er et minefelt, så mange tredjepartsprogrammer og -systemer – som jeg ikke har kontrol over – bruger det første.

Svar

Du kan bruge getent, der følger med glibc (så du har næsten helt sikkert det på Linux) . Dette løses ved hjælp af gethostbyaddr / gethostbyname2, og så kontrolleres også /etc/hosts / NIS / etc:

getent hosts unix.stackexchange.com | awk "{ print $1 }" 

Eller, som Heinzi sagde nedenfor, kan du bruge dig med +short argumentet (spørger DNS-servere direkte, ser ikke på /etc/hosts / NSS / etc):

dig +short unix.stackexchange.com 

Hvis dig +short er utilgængelig, er der nogen af følgende skal fungere. Alle disse spørger DNS direkte og ignorerer andre løsningsmetoder:

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 }" 

Hvis du kun vil udskrive en IP, skal du tilføje exit kommando til awk” s workflow.

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 }" 

Kommentarer

  • Som standard fungerer brug kun med ipv4, hvor værten giver både ipv4- og ipv6-svar. Dette kan være uventet. Du kan prøve 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 fungerer ikke, hvis det er et CNAME, returnerer det ikke IPen.
  • Nogle gange host kan timeout og returnerer intet. For nogle domæner kan dig +short muligvis returnere domænealias i første linje. Så for at sikre, at output er en IPv4 adresse, brug dig +short example.com | grep -Eo '[0-9\.]{7,15}' | head -1.
  • Brug af getent hosts <host> er forkert som for instan ce kan det give en IPv6-adresse, mens IPv6 ikke ‘ t fungerer. Den rigtige løsning er at bruge getent ahosts <host> til at prøve både IPv6 og IPv4, hvis det er nødvendigt.
  • Værd at nævne: vært, grave og nslookup ser ud til at tale direkte med de anførte servere i resolv.conf, hvorimod ” modtagende værter ” respekterer både den lokale værtsfil og caching på bibliotekniveau (såsom nscd), hvis den er aktiveret .

Svar

Med host fra dnsutils pakke:

$ host unix.stackexchange.com unix.stackexchange.com has address 64.34.119.12 

( Rettet pakkenavn i henhold til kommentarerne. Som en note har andre distributioner host i forskellige pakker: Debian / Ubuntu bind9-host , openSUSE bind-utils , Frugalware bind .)

Kommentarer

  • Se resolutionip-posten nedenfor, hvis du har brug for at løse noget, der ikke er i DNS (f.eks. / Etc / hosts)
  • Vær opmærksom på, at host returnerer undertiden multi-line output (i tilfælde af omdirigeringer), du ‘ vil host unix.stackexchange.com | tail -n1 hvis du bare vil have linjen med IP-adressen.
  • Der er flere versioner af ” vært ” med forskellige outputformater. For eksempel. de fleste systemer ser ud til at have BIND9-versionen, men min Ubuntu 10.04 LTS-server har en eller anden måde på en eller anden måde ..
  • hvis du ikke ‘ ikke har host eller dig installeret, du kan bruge ping i stedet, som altid er tilgængeligt: ping unix.stackexchange.com -c 1 -q 2>&1 | grep -Po "(\d{1,3}\.){3}\d{1,3}" dette behøver ikke noget ekstra pakker installeres på de fleste Unix / Linux matchines.
  • Dette svar fortjener en seriøs nedstemning. host er et DNS-værktøj (svarende til nslookup), så det kun ser op på værter i DNS, ikke i f.eks. /etc/hosts. Så det er IKKE et svar på OP ‘ s spørgsmål.

Svar

Jeg har et værktøj på min maskine, der ser ud til at udføre jobbet. Mandsiden viser, at det ser ud til at komme med mysql … Sådan kan du bruge det:

resolveip -s unix.stackexchange.com 64.34.119.12 

Returværdien for dette værktøj er forskellig fra 0 hvis værtsnavnet ikke kan løses:

resolveip -s unix.stackexchange.coma resolveip: Unable to find hostid for "unix.stackexchange.coma": host not found exit 2 

UPDATE På fedora kommer den med 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 

Jeg gætter på, at det ville skabe en mærkelig afhængighed af dit script …

Kommentarer

  • Dette ser ud til at være den eneste løsning her, der bruger OS ‘ s indbyggede resolver – så fungerer for / etc / hosts samt DNS.
  • getent, som beskrevet i det andet svar, ser også på / etc / hosts og leveres med glibc, så har ingen afhængigheder af et Linux-system.
  • Jeg bruger ikke resolip, da du opretter en afhængighed af en anden pakke. getent er installeret som standard. vært, nslookup og dig er alle i valgfri pakker. Brug bestemt getent i et script.
  • jeg kan godt lide dette svar, men det ‘ t returnerer ipv6

Svar

Følgende kommando ved hjælp af dig giver dig mulighed for at læse resultatet direkte uden sed / awk / osv. magi:

$ dig +short unix.stackexchange.com 64.34.119.12 

dig er også inkluderet i dnsutils pakke.


Bemærk : dig har en returværdi på 0, selvom navnet ikke kunne løses. Således skal du kontrollere, om output er tomt i stedet for at kontrollere returværdien:

hostname=unix.stackexchange.com ip=`dig +short $hostname` if [ -n "$ip" ]; then echo IP: $ip else echo Could not resolve hostname. fi 

Note 2 : Hvis et værtsnavn har flere IP-adresser (prøv f.eks. debian.org), vil alle være returneret. Dette “problem” påvirker alle de værktøjer, der er nævnt i dette spørgsmål hidtil:

Kommentarer

  • Bemærk, at hvis et domæne har en CNAME-post dets domæne kan blive udskrevet i den første linje i stedet for en IP-adresse.

Svar

getent hosts unix.stackexchange.com | cut -d" " -f1 

Kommentarer

  • Overvej også ahosts, ahostsv4, ahostsv6 med getent.
  • cut er ikke til getent ‘ s, der bruger \t til at adskille kolonner. Dette er tilfældet i Solaris.
  • @ceving: På Sola ris skal du muligvis køre cut uden -d (standard \t som afgrænser). På Linux er det ‘ mellemrum, så linjen ovenfor fungerer.

Svar

De hidtil givne løsninger fungerer for det meste i det enklere tilfælde: værtsnavnet løses direkte til en enkelt IPv4-adresse. Dette er muligvis det eneste tilfælde, hvor du har brug for at løse værtsnavne, men hvis ikke, nedenfor er en diskussion om nogle tilfælde, som du muligvis skal håndtere.

Chris Down og Heinzi diskuterede kort sagen, hvor værtsnavnet løser til mere end en IP-adresse. I dette tilfælde (og andre nedenfor) kan grundlæggende scripting under antagelse af, at et værtsnavn direkte løses til en enkelt IP-adresse muligvis gå i stykker. Nedenfor er et eksempel med et værtsnavn, der løser mere end en enkelt IP-adresse:

$ 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 

Men hvad er www.l.google.com ? Det er her, at alias skal introduceres. Lad os tjekke eksemplet nedenfor:

$ 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 

www.google.com løser ikke direkte til IP-adresser, men til et alias, der i sig selv løser flere IP-adresser. For mere information om aliasser, se her . Det er naturligvis muligt, hvor et alias har en enkelt IP-adresse , som vist nedenfor:

$ 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 

Men kan alias kædes sammen?Svaret er ja:

$ 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 

Jeg fandt ikke noget eksempel, hvor et værtsnavn løser et alias, der ikke løser en IP-adresse, men jeg tror, at tilfælde kan forekomme.

Mere end flere IP-adresser og aliaser, er der nogle andre specielle tilfælde … hvad med IPv6? Du kan prøve:

$ 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 

Hvor værtsnavnet ipv6.google.com er et værtsnavn, der kun er IPv6. Hvad med dual-stack værtsnavne:

$ 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:: 

Igen om IPv6, hvis din vært kun er IPv4, kan du stadig løse IPv6-adresser (testet kun på en IPv4 WinXP og med ipv6.google.com kan du prøve det på Linux). I dette tilfælde lykkes opløsningen, men et ping mislykkes med en ukendt værtsfejlmeddelelse . Dette kan være et tilfælde, hvor din scripting mislykkes.

Jeg håber, at disse bemærkninger var nyttige.

Kommentarer

  • Hvilket godt supplement til det accepterede svar, der viser alle de kanttilfælde, som man måske vil behandle i scripting. Min version host angiver ikke engang ” har adresse ” til mine felter.

Svar

For at undgå problemet med aliaser og altid få en enkelt IP-adresse klar til brug:

python -c "import socket; print socket.gethostbyname("www.example.com")" 

Kommentarer

Svar

ping -q -c 1 -t 1 your_host_here | grep PING | sed -e "s/).*//" | sed -e "s/.*(//" 

fungerer uden afhængighed af andre systemer (og for værter specificeret i / etc / hosts)

Kommentarer

  • Brug af ping er det, jeg har brug for, da jeg har brug for værdien fra værtsfilen, men sed-mønsteret parses korrekt, men dette fungerede ping – q -c 1 -t 1 dit_host_her | grep PING | sed -e ” s / ^ [^ (] * [(] // ” | sed -e ” s / [)]. * $ // ”
  • For at løse noget på mit hjemmenetværk som mit hostname.local fungerer dette så for mig dette er det bedste svar.
  • Må jeg også foreslå dette: ping -q -c 1 -t 1 bahface.local | grep -m 1 PING | cut -d "(" -f2 | cut -d ")" -f1
  • getent <ahosts|ahostsv4|ahostsv6|hosts> <hostname> fungerer også til erklæringer inden for /etc/hosts også … og det ‘ er go-to-tool til alle slags systemdatabaser (passwd, gruppe, aliaser, tjenester).

Svar

Enkelt men nyttigt :

  1. getent ahostsv4 www.google.de | grep STREAM | head -n 1 | cut -d " " -f 1
  2. getent ahostsv6 www.google.de | grep STREAM | head -n 1 | cut -d " " -f 1
  3. getent hosts google.de | head -n 1 | cut -d " " -f 1

Alle kommandoer løser en IP-adresse, hvis værten stadig eksisterer. Hvis værten peger på et CNAME, får den også IP i det sag.

Den første kommando returnerer den løste IPv4-adresse.

Den anden kommando returnerer res olved IPv6-adresse.

Den tredje kommando returnerer ejerens foretrukne adresse, som enten kan være en IPv4- eller en IPv6-adresse.

Kommentarer

  • Langt den mest enkle. Og det er som standard tilgængeligt. Ikke som host, der kræver installation af bindutils

Svar

Her er en lille variation af ping tilgang, der tager “ukendt vært” i betragtning (ved at røre gennem stderr) og bruger tr for at undgå brugen af sed regexps:

ping -c1 -t1 -W0 www.example.com 2>&1 | tr -d "():" | awk "/^PING/{print $3}" 

I tilfælde det er vigtigt at fange udgangsværdien, så fungerer følgende (skønt det er mindre elegant):

ping -c1 -t1 -W0 www.example.com &>/dev/null && ping -c1 -t1 -W0 www.example.com 2>&1 | tr -d "():" | awk "/^PING/{print $3}" 

Kommentarer

  • Jeg elsker denne løsning, fordi den fungerer uden ekstra værktøjer.

Svar

For at udfylde Chris Downs svar og adressere jfgagne-kommentarer om (muligvis kædede) aliasser, her er en løsning, der:

  • tager højde for flere IPer
  • tager højde for et eller flere aliaser (CNAME)
  • spørger ikke /etc/hosts fil ( i mit tilfælde ville jeg ikke have det); for at spørge om det er dbernt “s python-løsning perfekt)
  • bruger ikke awk / sed

    dig +short www.alias.com | grep -v "\.$" | head -n 1 

Returnerer altid den første IP-adresse eller tom tring, hvis den ikke er løst. med version af dig:

 $ dig -v DiG 9.8.1-P1 

Kommentarer

  • Tak, andre svar antager ” dig + kort ” returnerer altid en enkelt ip-adresse. De ‘ t tegnede sig for CNAME.

Svar

 php -r "echo gethostbyname("unix.stackexchange.com");" 

Kommentarer

  • dette fungerer, men det kræver, at php er installeret på din terminal
  • kan være nyttigt i en typisk php docker container, hvor ” vært “, ” dig ” osv. er ikke tilgængelige

Svar

Jeg ville gerne tilføje dette som en kommentar til Andrew McGregor Re: ping. Det ville dog ikke lade mig, så jeg er nødt til at tilføje dette som et andet svar. (Hvis nogen kan flytte det til en kommentar, er du velkommen til.)

Dette er en anden variant, der kun bruger ping og grep :

ping -q -c1 -t1 your_host_here | grep -Eo "([0-9]+\.?){4}" 

grep -E til udvidet regulært udtryk og grep -o til returner kun den matchende del. selve regexp ser efter et eller flere cifre ([0-9]+) og eventuelt en prik (\.?) fire gange ( {4})

Svar

Du kan bruge 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 

Svar

her “en Bash opskrift Jeg kogte op ved hjælp af andre folks svar – forsøg først /etc/hosts, og fald derefter tilbage til 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 }  

Kommentarer

  • For at være klar er getent hosts ikke ‘ t bare et opslag i / etc / hosts – det ‘ et komplet DNS-opløsende opkald til gethostbyaddr (3) , og det ‘ s meget sandsynligvis ikke mislykkes i et tilfælde, hvor dig vil lykkes. Se mandsiden for getent .
  • @Stuart har ret – jeg ‘ har lært en hel del siden at skrive det og forenklet en stærk kommando. getent forbliver min favorit, selvom jeg også kan lide dig +short

Svar

nmap -sP 192.168.178.0/24|grep YOUR_HOSTNAME|sed -n "s/.*[(]\([0-9\.]*\)[)].*/\1/p" 

var den løsning, jeg fandt uden DNS-server

Svar

Måske ikke det mest kortfattede, men det ser ud til at være robust og effektivt:

# $(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 } 

Dette udsender en enkelt IPv4 IP samt returnere 1 i tilfælde af fejl, mens du maskerer stderr-output.

Du kan bruge det på denne måde:

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 

Googles IP er 216.58.192.46.

Hvis du i stedet vil have en IPv6-adresse, skal du bare erstatte -4 med -6.

Svar

dig +noall +answer +nocomments example.com | awk "{printf "%-36s\t%s\n", $1, $5 }"

Kommentarer

  • Noget sammenhæng på hvilken måde dette svar forbedres i forhold til de allerede eksisterende Vær dygtig. Indsæt også kommandoer med 4 mellemrum (jf. Markdown-syntaksen).

Svar

dig er også langsom, nslookup er meget hurtigere

nslookup google.com | grep -Po "Address:\s*[0-9.]+" | tail -1 | sed -e "s/Address:\s*//g" 

Svar

1 linje løser en liste af værtsnavn

for LINE in `cat ~/Desktop/mylist`; do a=$(nslookup $LINE | awk "/^Address: / { print $1 }"); echo $a >> ~/Desktop/ip; done 

Svar

Jeg gør det hele tiden på min Mac, der ikke har getent. ping virker som et hack. Jeg vil også gerne tage /etc/hosts med i betragtning.

Så jeg skrev en dum indpakning til dns.lookup til du, der har Node.js installeret til at levere en CLI:

$ npm install -g lookup-hostname $ lookup google.com 62.243.192.89 

Kommentarer

  • 60% chance af brud, inden du kommer tæt på en løsning.
  • @dotbit kunne du uddybe? Jeg ‘ har brugt dette ugentligt siden ‘ 17 og har aldrig haft nogen problemer.
  • @Jensen men du ‘ er den eneste nogensinde, som altid. Resten af os støder normalt på FAIL af den ene eller den anden art og altid.
  • ” som altid ” Hvad mener du med det? ” Vi andre ” Hvem ‘ er det ? ” løber ind i FEJL ” Hvilket specifikt problem ser du? Jeg ‘ er nysgerrig.

Svar

Jeg don ” t kender den nemmeste måde for et bash-script, men hvis du vil løse et værtsnavn og se om værten er oppe, skal du bruge ping!

ping -a hostname -c 1 

Vil ping værten én gang og løse værtsnavnet til IP-adresse.

$ 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 

Kommentarer

  • at bruge ping er godt, fordi alle har det, men du skal filtrer IP-delen fra output, hvis du kan lide at bruge den i et script.

Svar

Ja, der er allerede mange svar, men en løsning, der bruger perl, mangler:

perl -MSocket -MNet::hostent -E "say inet_ntoa((gethost shift)->addr)" unix.stackexchange.com 

I et bash-script kunne det bruges sådan:

#!/bin/bash ipaddr=$(perl -MSocket -MNet::hostent -E "say inet_ntoa((gethost shift)->addr)" unix.stackexchange.com) echo $ipaddr 

Moduler, der bruges her, er kernemoduler, så de skal være tilgængelige overalt uden installation med CPAN.

Kommentarer

  • perl -MSocket -MNet::hostent -E 'say inet_ntoa((gethost shift)->addr)' unix.stackexchange.com 2>/dev/null er meget renere. men ingen andre end os to bruger p ö rl, alle andre bruger selvfølgelig Pascal Script.
  • Faktisk foretrækker jeg at se fejlmeddelelserne, hvis noget går galt. Can't call method "addr" on an undefined value isn ‘ t nøjagtigt den bedste fejlmeddelelse, men kan give et tip om problemet.

Svar

#!/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! " 

Kommentarer

  • Ruby-versionen udskriver citater omkring IP-adressen — sandsynligvis skal print bruges i stedet for p.
  • thx, @Slaven Rezic og velkommen til at stemme. så igen, her i bunden kan scriptet faktisk være mere synligt … 😉

Svar

host -t a cisco.com 

denne kommando viser ip-adresse (vil gendanne domæne til IP)

Svar

Udover ovenstående løsning kan du oversætte flere værtsnavne til ip via nedenstående script, den eneste afhængighed er “ping” -kommandoen i kerne 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 

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *