Avatar billede noxiaz Nybegynder
16. maj 2006 - 18:37 Der er 42 kommentarer og
1 løsning

Ping ip

Nogen som har et MEGET enkelt script hvor man kan pinge et interval af ip'er og få hostname tilbage og tid i ms hvor lang tid tog at pinge hver ip?

Har kigget google i gennem op til flere gange men kan ikke få noget af det til at virke, ellers er det alt for inviklet.
Avatar billede arne_v Ekspert
16. maj 2006 - 18:55 #1
.NET 1.x eller 2.0 ?

det er er meget nemt at pinge i .NET 2.0 fordi frameworket understoetter det

for .NET 1.x skal man bruge nogle native kald - jeg har dog noget kode liggende
Avatar billede Slettet bruger
16. maj 2006 - 19:07 #2
Brugte denne selv til et projekt, du kan hente addressen ud fra Reply

public string Ping(string IP, int Timeout)
        {
            try
            {
                Ping pingSender = new Ping();
                PingOptions options = new PingOptions();
                options.DontFragment = true;

                // Create a buffer of 32 bytes of data to be transmitted.
                string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
                byte[] buffer = Encoding.ASCII.GetBytes(data);

                PingReply reply = pingSender.Send(IPAddress.Parse(IP), Timeout, buffer, options);
                if (reply.Status == IPStatus.Success)
                    return reply.RoundtripTime.ToString();
                else if (reply.Status == IPStatus.TimedOut)
                    return "Timeout";
                else
                    return "Error";
            }
            catch (Exception)
            {
                return "Error";
            }
        }
Avatar billede Slettet bruger
16. maj 2006 - 19:08 #3
using System.Net.NetworkInformation;
Avatar billede Slettet bruger
16. maj 2006 - 19:08 #4
og denne også:

using System.Net;

:)
Avatar billede noxiaz Nybegynder
16. maj 2006 - 19:11 #5
wb-freekill:
byte[] buffer = Encoding.ASCII.GetBytes(data); <-- Encoding does not exist.

Arne_v:
Det er .net 2.0 :) og
Avatar billede Slettet bruger
16. maj 2006 - 19:12 #6
Du skal bruge:

using System.Text;

Også ;)
Avatar billede noxiaz Nybegynder
16. maj 2006 - 19:15 #7
wb-freekiller:
Kan du også få den til at return hostname til IP'en ?
Så den returner: ms - hostname
Avatar billede arne_v Ekspert
16. maj 2006 - 19:19 #8
saa er det lige ud af landevejen

wb-freekill har givet dig kode
Avatar billede noxiaz Nybegynder
16. maj 2006 - 19:22 #9
Det er lige ud af landevejen hvis man har arbejdet med det i 5 år eller mere :P
Avatar billede noxiaz Nybegynder
16. maj 2006 - 19:24 #10
wb-freekill, hvorfor sige den timeout når jeg pinger min router? Men når jeg pinger i dos, via ping commanden får jeg da respawn?
Avatar billede Slettet bruger
16. maj 2006 - 19:24 #11
så er der noget der blokker for det måske?
Avatar billede noxiaz Nybegynder
16. maj 2006 - 19:27 #12
wb-freekill, har slået firewall fra. Hmm nå lige meget. Hvordan får jeg hostname?
Avatar billede noxiaz Nybegynder
16. maj 2006 - 19:30 #13
wb-freekill, det var firewall der blockede.. hehe :D mangler kun hostname. Der efter smid at svar så får du points ;)
Avatar billede arne_v Ekspert
16. maj 2006 - 19:34 #14
der er et eksempel i docs

der er ogsaa et eksempel i http://www.eksperten.dk/artikler/694
Avatar billede Slettet bruger
16. maj 2006 - 19:37 #15
ved faktisk ikke hvordn man oversætter en IP til hostname (www.*******).. kun den anden vej =)

Arne måske du ved det?:)
Avatar billede nielle Nybegynder
16. maj 2006 - 19:46 #16
Nu er det jo bestemt ikke alle IP-numre som gemmer sig bag et hostname. Det gør mit IP lige nu f.eks. ikke.

Normalt plejer man dog at slå den slags ting op via services som http://www.ripe.net
Avatar billede nielle Nybegynder
16. maj 2006 - 19:47 #17
... eller rettete sagt, mit hostname er det "mundrette" 0x503e3345.virnxx8.adsl-dhcp.tele.dk
Avatar billede Slettet bruger
16. maj 2006 - 19:48 #18
nå ja men hvad hvis jeg pinger googles ip, hvordan får jeg hostname?
Avatar billede arne_v Ekspert
16. maj 2006 - 19:51 #19
DNS.GetHostByAddress vil jeg tro
Avatar billede noxiaz Nybegynder
16. maj 2006 - 19:52 #20
Nielle, du vil da altid gemme dig bag et hostname.
Avatar billede noxiaz Nybegynder
16. maj 2006 - 19:53 #21
arne_v, DNS.GetHostByAddress <-- hvordan bruger jeg så det? :)
Avatar billede nielle Nybegynder
16. maj 2006 - 19:53 #22
Fandt lige denne stump i min værktøjskasse:

            // Reverse DNS lookup
            try
            {
                string BoersenDkIP = "194.239.128.60";
                IPAddress IP = IPAddress.Parse(BoersenDkIP);
                IPHostEntry Host = Dns.GetHostByAddress(IP);
                Console.WriteLine("Hosten hedder: " + Host.HostName);
            }
            catch (System.Net.Sockets.SocketException e)
            {
                Console.WriteLine(e.Message);
            }
Avatar billede nielle Nybegynder
16. maj 2006 - 19:54 #23
noxiaz> Ja, se det jeg postede 16/05-2006 19:47:22 :^)
Avatar billede arne_v Ekspert
16. maj 2006 - 19:56 #24
bemaerk at den kan returnere 0..mange host navne !
Avatar billede arne_v Ekspert
16. maj 2006 - 19:56 #25
man behoever ikke at have et host navn til en IP adresse

man har det normalt - ISP assigner navne til de IP adresser som
bruges af ADSL og dialup kunder - nielle har f.eks. lige afsloeret at
han er TDC kunde
Avatar billede noxiaz Nybegynder
16. maj 2006 - 19:57 #26
Ja oki. :) Hmm.. er lidt lost lige nu. Hvordan får jeg at det nielle pastede, ind i det andet script ? Så den returner: ms - hostname.
Avatar billede nielle Nybegynder
16. maj 2006 - 19:57 #27
... og det skammer jeg mig ikke specielt over ;^)
Avatar billede Slettet bruger
16. maj 2006 - 19:59 #28
hmm, får denne fejl:

e.Message = "Det anmodede navn er gyldigt og blev fundet i databasen, men det indeholder ikke de tilknyttede data, der søges efter"
Avatar billede nielle Nybegynder
16. maj 2006 - 20:01 #29
BTW: Jeg ser lige Dns.GetHostByAddress() er obsolete i 2.0 - nu bør koden se sådan her ud i stedet:

            // Reverse DNS lookup
            try
            {
                string BoersenDkIP = "194.239.128.60";
                IPAddress ip = IPAddress.Parse(BoersenDkIP);
                IPHostEntry hostname = Dns.GetHostEntry(ip);
                Console.WriteLine("Hosten hedder: " + hostname.HostName);
            }
            catch (System.Net.Sockets.SocketException e)
            {
                Console.WriteLine(e.Message);
            }
Avatar billede noxiaz Nybegynder
16. maj 2006 - 20:02 #30
Mange mange tak. wb-frekill send et svar. :) Men hva med nieller, han har også fortjent nogen af pointsene? Kan angive 2 svar? så de dele points?
Avatar billede noxiaz Nybegynder
16. maj 2006 - 20:03 #31
Kan angive 2 svar?  =  Kan man angive 2 svar?
Avatar billede arne_v Ekspert
16. maj 2006 - 20:03 #32
.HostName indeholder primaere navn

.Aliases indeholder resten af navnene
Avatar billede Slettet bruger
16. maj 2006 - 20:04 #33
(svar)


hmm, det her giver mig bare den samme ip jeg taster ind (ret lige gyldigt så)

?

// Reverse DNS lookup
            try
            {
                string BoersenDkIP = "64.233.183.103";
                IPAddress ip = IPAddress.Parse(BoersenDkIP);
                IPHostEntry hostname = Dns.GetHostEntry(ip);
                return "Hosten hedder: " + hostname.HostName;
            }
            catch (System.Net.Sockets.SocketException e)
            {
                return e.Message;
            }
Avatar billede Slettet bruger
16. maj 2006 - 20:05 #34
det er så ip på www.google.dk
Avatar billede nielle Nybegynder
16. maj 2006 - 20:08 #35
wb-freekill> Det var derfor at jeg opringelig brugte Børsen i eksemplet. Hvis man prøver at reverse-DNS'e Google får man nemlig bare IP-nummeret.

Der er nemlig ingen garanti for at der overhovedet er defineret reverse-DNS informationer om et givet IP.
Avatar billede nielle Nybegynder
16. maj 2006 - 20:09 #36
Avatar billede Slettet bruger
16. maj 2006 - 20:09 #37
aha.. men hvordan kan CMD så lige gøre det mon?:)
Avatar billede noxiaz Nybegynder
16. maj 2006 - 20:10 #38
Tak for svaret wb-freekill. Tak for hjælpen nielle. og arne_v :) Har lært en del :D så dejligt i kiggede forbi :D
Avatar billede nielle Nybegynder
16. maj 2006 - 20:10 #39
"CMD"?
Avatar billede Slettet bruger
16. maj 2006 - 20:10 #40
Vi lærer vel alle :P
Avatar billede Slettet bruger
16. maj 2006 - 20:10 #41
kommando promt
Avatar billede nielle Nybegynder
16. maj 2006 - 20:15 #42
Det må du lige uddybe. Kommandoprompten giver dig ikke noget hostname uden at du rent faktisk indtaster en kommando til formålet.
Avatar billede Slettet bruger
16. maj 2006 - 20:16 #43
næh det gør den sgu heller ikk :P min fejl
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester