Hvordan kan jeg løse et vertsnavn til en IP-adresse i et Bash-skript?

Hva er den korteste måten å løse et vertsnavn til en IP-adresse i et Bash-skript? Jeg bruker Arch Linux .

Kommentarer

  • Skam at getent <ahosts|ahostsv4|ahostsv6|hosts> <hostname> svaret er et sted der nede i bunnen. Det ‘ er det enkleste, krever ingen ekstra pakker og er lettere å analysere fra et Bash-skript også.
  • @ 0xC0000022L: Den nye skammen er at svaret antyder getent hosts somehost, når kjører denne mens du er på somehost vil produsere en IPv6-adresse , som er forskjellig fra hvordan de fleste andre verktøy (ping, ssh i det minste) løse navn og bryte noen ting. Bruk ahosts i stedet for hosts.
  • @j_random_hacker: som hindrer deg i å be spesifikt om IPv4 (ahostsv4) eller IPv6 (ahostsv6) adresser? Personlig finner jeg ingenting galt med at den uspesifikke forespørselen om å returnere IPv6. Koden din skal utarbeides. IPv6 har vært der i mer enn 20 år nå.
  • @ 0xC0000022L: Ingen » holder meg » fra gjør det, men svaret antyder spesifikt hosts, og så langt har 4 personer oppstemt vinc17 ‘ s kommentar som uttrykker smerten forårsaket av » plutselig IPv6 «. Å være forberedt på IPv6 er ikke alltid problemet: mange programmer trenger en måte å avgjøre om to navn / adresser refererer til samme vert. De kan enten bruke enkel strengtilpasning, eller de må vite mye om nettverket for å finne » true » svaret. Sistnevnte er et minefelt, så mange tredjepartsprogrammer og -systemer – som jeg ikke har kontroll over – bruker det første.

Svar

Du kan bruke getent, som følger med glibc (slik at du nesten helt sikkert har det på Linux) . Dette løser seg ved hjelp av gethostbyaddr / gethostbyname2, og vil også sjekke /etc/hosts / NIS / etc:

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

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

dig +short unix.stackexchange.com 

Hvis dig +short er utilgjengelig, er det noen av følgende skal fungere. Alle disse spørringene DNS direkte og ignorerer andre måter å løse:

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 bare vil skrive ut en IP, legg til exit kommando til awk» s arbeidsflyt.

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 bruk bare med ipv4, hvor verten gir 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 IP-en.
  • Noen ganger host kan bli tidsavbrutt og returnerer ingenting. For noen domener kan dig +short returnere domenealias i første linje. Så for å sikre at utdataene er en IPv4 adresse, bruk dig +short example.com | grep -Eo '[0-9\.]{7,15}' | head -1.
  • Bruk av getent hosts <host> er feil, som for eksempel ce det kan gi en IPv6-adresse mens IPv6 ikke fungerer ‘ t. Den riktige løsningen er å bruke getent ahosts <host> for å prøve både IPv6 og IPv4 om nødvendig.
  • Verdt å nevne: vert, dig og nslookup ser ut til å snakke direkte med serverne som er oppført i resolv.conf, mens » mottatte verter » respekterer både den lokale vertsfilen og caching på biblioteknivå (for eksempel nscd) hvis aktivert .

Svar

Med host fra dnsutils pakke:

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

( Rettet pakkenavn i henhold til kommentarene. Som et notat har andre distribusjoner host i forskjellige pakker: Debian / Ubuntu bind9-host , openSUSE bind-utils , Frugalware bind .)

Kommentarer

  • Se resolip-oppføringen nedenfor hvis du trenger å løse noe som ikke er i DNS (f.eks. / Etc / hosts)
  • Vær oppmerksom på at host returnerer noen ganger flere linjers utdata (i tilfelle omdirigeringer), vil du ‘ vil ha host unix.stackexchange.com | tail -n1 hvis du bare vil ha linjen med IP-adressen.
  • Det finnes flere versjoner av » vert » med forskjellige utdataformater. F.eks. de fleste systemer ser ut til å ha BIND9-versjonen, men min Ubuntu 10.04 LTS-server har en eller annen helt annen versjon på en eller annen måte ..
  • hvis du ikke har ‘ t har host eller dig installert, du kan bruke ping i stedet som alltid er tilgjengelig: ping unix.stackexchange.com -c 1 -q 2>&1 | grep -Po "(\d{1,3}\.){3}\d{1,3}" dette trenger ikke noe ekstra pakker installeres på de fleste Unix / Linux matchines.
  • Dette svaret fortjener en seriøs nedstemning. host er et DNS-verktøy (ligner nslookup), så det bare ser opp verter i DNS, ikke i f.eks. /etc/hosts. Så det er IKKE et svar på OP ‘ s spørsmål.

Svar

Jeg har et verktøy på maskinen min som ser ut til å gjøre jobben. Mannsiden viser at det ser ut til å komme med mysql … Slik kan du bruke den:

resolveip -s unix.stackexchange.com 64.34.119.12 

Returverdien til dette verktøyet er forskjellig fra 0 hvis vertsnavnet 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 antar at det ville skape en merkelig avhengighet for skriptet ditt …

Kommentarer

  • Dette ser ut til å være den eneste løsningen her som bruker OS ‘ s innebygd resolver – så fungerer for / etc / hosts samt DNS.
  • getent, som beskrevet i det andre svaret, ser også på / etc / hosts, og kommer med glibc, så har ingen avhengigheter av et Linux-system.
  • Jeg vil ikke bruke resolip siden du oppretter en avhengighet av en annen pakke. getent er installert som standard. host, nslookup og dig er alt i valgfrie pakker. Definitivt bruk getent i et skript.
  • Jeg liker dette svaret, men det ‘ t returnerer ipv6

Svar

Følgende kommando med dig lar deg lese resultatet direkte uten sed / awk / etc. magi:

$ dig +short unix.stackexchange.com 64.34.119.12 

dig er også inkludert i dnsutils pakke.


Merk : dig har en returverdi på 0, selv om navnet ikke kunne løses. Dermed må du sjekke om utgangen er tom i stedet for å sjekke returverdien:

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

Merknad 2 : Hvis et vertsnavn har flere IP-adresser (prøv debian.org, for eksempel), vil alle være returnert. Dette «problemet» påvirker alle verktøyene som er nevnt i dette spørsmålet så langt:

Kommentarer

  • Merk at hvis et domene har en CNAME-oppføring domenet kan skrives ut på første linje i stedet for en IP-adresse.

Svar

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

Kommentarer

  • Vurder også ahosts, ahostsv4, ahostsv6 med getent.
  • cut vil ikke getent ‘ s, som bruker \t for å skille kolonner. Dette er tilfelle på Solaris.
  • @ceving: På Sola ris må du kanskje kjøre cut uten -d (standard er \t som skilletegn). På Linux er det ‘ s mellomrom, slik at linjen over fungerer.

Svar

Løsningene som er gitt hittil fungerer for det meste i det enklere tilfellet: vertsnavnet løses direkte til en enkelt IPv4-adresse. Dette kan være det eneste tilfellet der du trenger å løse vertsnavn, men hvis ikke, nedenfor er en diskusjon om noen saker du kanskje trenger å håndtere.

Chris Down og Heinzi diskuterte kort saken der vertsnavnet løser seg til mer enn én IP-adresse. I dette tilfellet (og andre nedenfor) kan grunnleggende skript under antagelse om at et vertsnavn løses direkte til en enkelt IP-adresse, bryte. Nedenfor, et eksempel med et vertsnavn som løser mer enn 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 hva er www.l.google.com ? Det er her alias saken må innføres. La oss sjekke 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 seg ikke direkte til IP-adresser, men til et alias som i seg selv løser flere IP-adresser. Hvis du vil ha mer informasjon om aliaser, kan du sjekke her . Selvfølgelig er tilfellet der et alias har en enkelt IP-adresse mulig , 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 lenkes?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 fant ikke noe eksempel der et vertsnavn løser seg til et alias som ikke løser en IP-adresse, men jeg tror saken kan oppstå.

Mer enn flere IP-adresser og aliaser, er det noen andre spesielle tilfeller … hva 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 

Der vertsnavnet ipv6.google.com er et bare IPv6-vertsnavn. Hva med dual-stack vertsnavn:

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

Igjen om IPv6, hvis verten din bare er IPv4, kan du likevel løse IPv6-adresser (testet på bare IPv4 WinXP og med ipv6.google.com, kan du prøve det på Linux). I dette tilfellet lykkes oppløsningen, men et ping mislykkes med en ukjent vertsfeilmelding . Dette kan være et tilfelle der skriptingen din mislykkes.

Jeg håper disse kommentarene var nyttige.

Kommentarer

  • For en flott utfyller det aksepterte svaret, og viser alle edge-tilfeller man kanskje vil håndtere i skript. Min versjon host oppgir ikke engang » har adresse » for boksene mine.

Svar

For å unngå problemet med aliaser og alltid få en enkelt IP-adresse klar til bruk:

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 uten avhengighet av andre systemer (og for verter spesifisert i / etc / hosts)

Kommentarer

  • Bruk av ping er det jeg trengte da jeg trenger verdien fra vertsfilen, men sed mønsteret parses riktig, men dette fungerte ping – q -c 1 -t 1 your_host_here | grep PING | sed -e » s / ^ [^ (] * [(] // » | sed -e » s / [)]. * $ // »
  • For å løse noe på hjemmenettverket mitt som mittnavn.lokal fungerer dette for meg dette er det beste svaret.
  • Kan jeg foreslå dette også: 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 for erklæringer i /etc/hosts også … og det ‘ er gå-til-verktøyet for alle slags systemdatabaser (passwd, gruppe, aliaser, tjenester).

Svar

Enkelt, men nyttig :

  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 verten fremdeles eksisterer. Hvis verten peker på et CNAME, vil den også få IP-adressen i den sak.

Den første kommandoen returnerer den løste IPv4-adressen.

Den andre kommandoen returnerer res olved IPv6-adresse.

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

Kommentarer

  • Den desidert mest enkle. Og det er tilgjengelig som standard. Ikke som host som krever installasjon av bindutils

Svar

Her er en liten variasjon av ping tilnærmingen som tar hensyn til «ukjent vert» (ved å røre gjennom stderr) og bruker tr for å unngå bruk av sed regexps:

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

I tilfelle det er viktig å fange utgangsverdien, så fungerer følgende (men 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øsningen, fordi den fungerer uten ekstra verktøy.

Svar

For å fullføre Chris Downs svar, og adressere jfgagne-kommentarer om (muligens lenket) aliaser, her er en løsning som:

  • tar hensyn til flere IP-er
  • tar hensyn til ett eller flere aliaser (CNAME)
  • spør ikke /etc/hosts fil ( i mitt tilfelle ønsket jeg det ikke); for å spørre om det, dbernt «s python-løsning er perfekt)
  • bruker ikke awk / sed

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

Returnerer alltid den første IP-adressen, eller tom tring hvis den ikke er løst. med versjon av dig:

 $ dig -v DiG 9.8.1-P1 

Kommentarer

  • Takk, andre svar antar at » dig + kort » alltid returnerer en enkelt ip-adresse. De ‘ t sto for CNAME.

Svar

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

Kommentarer

  • dette fungerer, men det krever at php er installert på terminalen din
  • kan være nyttig i en typisk php docker container der » vert «, » dig » etc. er ikke tilgjengelig

Svar

Jeg skulle gjerne lagt til dette som en kommentar til Andrew McGregor Re: ping. Det ville imidlertid ikke la meg, så jeg må legge til dette som et annet svar. (Hvis noen kan flytte det til en kommentar, er du velkommen til.)

Dette er en annen variant, bare ved bruk av ping og grep. :

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

grep -E for utvidet regulært uttrykk og grep -o til returner bare den matchende delen. selve regexp ser etter ett eller flere sifre ([0-9]+) og eventuelt et punktum (\.?) fire ganger ( {4})

Svar

Du kan bruke 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-oppskrift Jeg kokte opp med andre folks svar – prøv først /etc/hosts, og fall så tilbake 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 å være klar, er getent hosts ‘ t bare et oppslag i / etc / hosts – det ‘ er en fullstendig DNS-løsning for samtale til gethostbyaddr (3) , og det ‘ s veldig usannsynlig å mislykkes i et tilfelle der dig vil lykkes. Se mansiden for getent .
  • @Stuart har rett – jeg ‘ har lært mye siden du skrev det og forenklet en kraftig kommando. getent er fortsatt min favoritt, selv om jeg også liker dig +short

Svar

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

var løsningen jeg fant uten DNS-server

Svar

Kanskje ikke det mest konsise, men det ser ut til å 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 gir ut en enkelt IPv4 IP, samt returnere 1 i tilfelle feil, mens du maskerer stderr-utdata.

Du kan bruke den slik:

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 ha en IPv6-adresse, er det bare å erstatte -4 med -6.

Svar

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

Kommentarer

  • Noe sammenheng på hvilken måte svaret forbedres i forhold til de allerede eksisterende vær flott. Vær så snill å trekke inn kommandoer med fire mellomrom (jf. Syntaks for markdown).

Svar

dig er også treg, nslookup er mye raskere

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

Svar

1 linje løser en liste av vertsnavn

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

Svar

Jeg gjør dette hele tiden på min Mac som ikke har getent. ping virker som et hack. Jeg vil også ta /etc/hosts med i betraktningen.

Så, jeg skrev en dum innpakning til dns.lookup for du som har Node.js installert for å gi en CLI:

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

Kommentarer

  • 60% sjanse brudd før du kommer i nærheten av en løsning.
  • @dotbit kan du utdype det? Jeg ‘ har brukt dette ukentlig siden ‘ 17 og har aldri hatt noen problemer.
  • @Jensen men du ‘ er den eneste noensinne, som alltid. Vi andre støter vanligvis på FAIL av den ene eller den andre typen, og alltid.
  • » som alltid » Hva mener du med det? » Vi andre » Hvem ‘ er det ? » Mislykkes » Hvilket spesifikt problem ser du? Jeg ‘ er nysgjerrig.

Svar

Jeg don » ikke vet den enkleste måten for et bash-skript, men hvis du vil løse et vertsnavn og se om verten er oppe, bruk ping!

ping -a hostname -c 1 

Vil ping verten en gang og løse vertsnavnet 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

  • å bruke ping er bra, fordi alle har det, men du må filtrer IP-delen fra utgangene, hvis du vil bruke den i et skript.

Svar

Ja, det er mange svar allerede, men en løsning som bruker perl mangler:

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

I et bash-skript kan det brukes slik:

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

Moduler som brukes her er kjernemoduler, så de bør være tilgjengelige overalt uten å installere med CPAN.

Kommentarer

  • perl -MSocket -MNet::hostent -E 'say inet_ntoa((gethost shift)->addr)' unix.stackexchange.com 2>/dev/null er mye renere. men ingen andre enn oss to bruker p ö rl, alle andre bruker selvfølgelig Pascal Script.
  • Egentlig foretrekker jeg å se feilmeldingene hvis noe går galt. Can't call method "addr" on an undefined value er ikke ‘ t akkurat den beste feilmeldingen, men kan gi et hint 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

  • Rubyversjonen skriver ut anførselstegn rundt IP-adressen — sannsynligvis bør print brukes i stedet for p.
  • thx, @Slaven Rezic og gjerne stemme. så igjen, her nederst kan skriptet være mer synlig faktisk … 😉

Svar

host -t a cisco.com 

denne kommandoen viser ip-adresse (vil gjenta domene til IP)

Svar

I tillegg til løsningen ovenfor, kan du oversette flere vertsnavn til ip via skriptet nedenfor, den eneste avhengigheten er «ping» -kommandoen i kjerne 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 

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *