obtenir les informations complète d’un nom de domaine

avec les nouvelles cmdlettes, nous pouvons créer des fonctions puissantes . la fonction suivante permet de récupérer à partir d’un nom de domaine les adresses ip, le site web, les FAI, les plages IP…

j’utilise les cmdlettes resolve-dnsname ainsi que invoke-restmethod pour récupérer via json des informations complètes 

les informations retournent l’adresse ip, les serveurs de messagerie, l’adresse ip du site web, le FAI , l’AS BGP réseau, les plages IP utiliser par le FAI

function​​ get-infoIsp{

PARAM(

​​ [parameter()][string]$nom

 

)

######################################################################

#TEST DNS

######################################################################

 ​​ ​​​​ $dnsA=Resolve-DnsName​​ -Name​​ $nom​​ -Type​​ A

 ​​ ​​​​ $dnsS=Resolve-DnsName​​ -Name​​ $nom​​ -Type​​ SOA

 ​​ ​​​​ $dnsMx=Resolve-DnsName​​ -Name​​ $nom​​ -Type​​ MX

 ​​ ​​​​ write-host​​ "information sur la gestion du domaine ".ToUpper()​​ -f​​ red​​ -b​​ White

 ​​ ​​​​ write-host​​ "Nom  ​​ ​​ ​​​​ : "​​ -NoNewline;write-host​​ "$($dnsa.name)".PadRight(15," ")​​ -f​​ Green​​ -NoNewline

 ​​ ​​​​ write-host​​ "TTL  ​​ ​​ ​​​​ : "​​ -NoNewline;write-host​​ "$($dnsa.TTL)".PadRight(8," ")​​ -f​​ Green​​ -NoNewline

 ​​ ​​​​ write-host​​ "primary server : "​​ -NoNewline;write-host​​ "$($dnss.primaryServer)".PadRight(15," ")​​ -f​​ Green​​ 

 ​​ ​​​​ $dnsMx.nameExchange​​ |​​ %{​​ 

 ​​ ​​ ​​ ​​ ​​ ​​​​ write-host​​ "Serveur messagerie : "​​ -NoNewline

 ​​ ​​ ​​ ​​ ​​ ​​​​ write-host​​ $_​​ -ForegroundColor​​ Yellow​​ -BackgroundColor​​ Black

 ​​ ​​ ​​ ​​ ​​ ​​​​ }

####################################################

#TEST PORT

####################################################

$tcp=Test-NetConnection​​ -ComputerName​​ "www.$nom"​​ -CommonTCPPort​​ HTTP​​ 

write-host​​ "Test du site www.$nom​​ sur le port 80"​​ -f​​ Red​​ -b​​ white​​ 

write-host​​ "Adresse site  ​​ ​​​​ : "​​ -NoNewline​​ ;​​ write-host​​ "$($tcp.remoteaddress)​​ "​​ -f​​ Green​​ -NoNewline

write-host​​ "Site : "​​ -NoNewline;​​ write-host​​ "$($tcp.computername)​​ "​​ -F​​ Green

write-host​​ "Adresse source ​​ : "​​ -NoNewline; ​​ #write-host $tcp.SourceAddress -f Green -NoNewline

write-host​​ "interface utilisé ​​ : "​​ -NoNewline; ​​ write-host​​ "$($tcp.interfaceAlias)"​​ -f​​ Green​​ 

write-host​​ "Site accessible : "​​ -NoNewline;write-host​​ "$($tcp.tcpTestSucceeded)"​​ -f​​ red​​ -b​​ white

####################################################

#RECUPERATION de l'ADRESSE IP en fonction du domaine

#####################################################

 ​​​​ 

 ​​ ​​ ​​ ​​​​ if($tcp.remoteaddress){$ip=$tcp.remoteAddress}else{

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ $ip=@()

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ $ip+=((Resolve-DnsName​​ -Name​​ $nom​​ -Type​​ A).IPAddress)

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ if($ip[0]​​ -eq​​ $null){

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ $ip=@()

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ $ip+=(Resolve-DnsName​​ -Name​​ $nom​​ -Type​​ SOA).IPAddress[0]

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ }$ip=$ip[0]}  ​​ ​​ ​​ ​​​​ 

 ​​ ​​ ​​​​ 

 

 ​​​​ # ​​ write-host "ip: $ip" -f yellow

 ​​ ​​ ​​​​ write-host​​ "Information complete sur :​​ $nom​​ et l'adresse​​ $ip".ToUpper()​​ -f​​ Red​​ -BackgroundColor​​ White

 ​​ ​​ ​​​​ write-host​​ "$("#"​​ *​​ 50)"​​ -f​​ Red​​ 

#######################################################################

#GEOLOCALISATION ADRESSE

#######################################################################

 ​​ ​​ ​​​​ $info=Invoke-RestMethod​​ -Uri​​ "http://ip-api.com/json/$ip"

 ​​ ​​​​ # $info

 ​​ ​​ ​​​​ write-host​​ "AS  ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ : "​​ -NoNewline;​​ write-host​​ "$($info.as)".PadRight(25," ")​​ -f​​ Cyan​​ -NoNewline

 ​​ ​​ ​​​​ write-host​​ "Ville  ​​ ​​ ​​ ​​​​ : "​​ -NoNewline;​​ write-host​​ "$($info.city)".PadRight(15," ")​​ -f​​ Cyan​​ -NoNewline

 ​​ ​​ ​​​​ write-host​​ "Pays  ​​ ​​ ​​ ​​ ​​​​ : "​​ -NoNewline;​​ write-host​​ "$($info.country)"​​ -f​​ Cyan​​ 

 ​​ ​​ ​​​​ write-host​​ "ISP  ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ : "​​ -NoNewline;​​ write-host​​ "$($info.isp)".PadRight(25," ")​​ -f​​ Yellow​​ -NoNewline

 ​​ ​​ ​​​​ write-host​​ "lattitude ​​ : "​​ -NoNewline;​​ write-host​​ "$($info.lat)".PadRight(15," ")​​ -f​​ Cyan​​ -NoNewline

 ​​ ​​ ​​​​ write-host​​ "longitude ​​ : "​​ -NoNewline;​​ write-host​​ "$($info.lon)"​​ -f​​ Cyan​​ 

 ​​ ​​ ​​​​ write-host​​ "Organisation : "​​ -NoNewline;​​ write-host​​ "$($info.org)".PadRight(25," ")​​ -f​​ Yellow​​ -NoNewline

 ​​ ​​ ​​​​ write-host​​ "région  ​​ ​​ ​​​​ : "​​ -NoNewline;​​ write-host​​ "$($info.regionname)".PadRight(15," ")​​ -f​​ Cyan​​ -NoNewline

 ​​ ​​ ​​​​ write-host​​ "Timezone  ​​​​ : "​​ -NoNewline;​​ write-host​​ "$($info.timezone)".PadRight(15," ")​​ -f​​ Cyan​​ -NoNewline

 ​​ ​​ ​​​​ write-host​​ "code postal: "​​ -NoNewline;​​ write-host​​ "$($info.zip)".PadRight(15," ")​​ -f​​ Cyan​​ 

 

 ​​ ​​ ​​​​ 

 ​​ ​​ ​​​​ $plage=Invoke-RestMethod​​ -Uri​​ "http://api.myspeed.today/provider.json?ip=$($ip)"

 ​​ ​​ ​​​​ #$plage

 ​​ ​​ ​​​​ $dern=[convert]::ToString($plage.ip_range_start,2)

 ​​ ​​ ​​​​ $ipdebut= ​​​​ $(for​​ ($i=-32;$i​​ -le​​ -1;​​ $i+=8)

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ {

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ [convert]::ToInt32($dern[$i..($i+7)]​​ -join​​ "",2)

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ })​​ -join​​ "."

 ​​ ​​ ​​​​ $dern=[convert]::ToString($plage.ip_range_end,2)

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ $ipfin= ​​​​ $(for​​ ($i=-32;$i​​ -le​​ -1;​​ $i+=8)

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ {

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ [convert]::ToInt32($dern[$i..($i+7)]​​ -join​​ "",2)

 ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ })​​ -join​​ "."

 

 ​​ ​​ ​​​​ write-host​​ "IP  ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​ ​​​​ : "​​ -NoNewline;​​ write-host​​ "$($plage.ip)".PadRight(25," ")​​ -f​​ Cyan​​ -NoNewline

 ​​ ​​ ​​​​ write-host​​ "RIPE  ​​ ​​ ​​ ​​ ​​​​ : "​​ -NoNewline;​​ write-host​​ "$($plage.name_ripe)".PadRight(15," ")​​ -f​​ Cyan

 ​​ ​​ ​​​​ write-host​​ "IP début  ​​ ​​ ​​​​ : "​​ -NoNewline;​​ write-host​​ "$($ipdebut)".PadRight(25," ")​​ -f​​ red​​ -b​​ white​​ 

 ​​ ​​ ​​​​ write-host​​ "IP fin  ​​ ​​ ​​ ​​ ​​​​ : "​​ -NoNewline;​​ write-host​​ "$($ipfin)".PadRight(25," ")​​ -f​​ blue​​ -b​​ white​​ 

 ​​ ​​ ​​​​ write-host​​ "route  ​​ ​​ ​​ ​​ ​​ ​​​​ : "​​ -NoNewline;​​ write-host​​ "$($plage.route)".PadRight(15," ")​​ -f​​ Cyan​​ -NoNewline

 ​​ ​​ ​​​​ write-host​​ "masque  ​​ ​​ ​​​​ : "​​ -NoNewline;​​ write-host​​ "$($plage.mask)"​​ -f​​ Cyan​​ 

 

 ​​ ​​ ​​​​ 

 

}

 

get-infoIsp​​ -nom​​ google.com

 

​​ 

 

Laisser un commentaire