ARP a Ping v C# – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

ARP a Ping v C# – .NET – Fórum – Programujte.comARP a Ping v C# – .NET – Fórum – Programujte.com

 

JirkaX0
Newbie
25. 1. 2014   #1
-
0
-

Ahoj,

řeším takový problém,že potřebuji v stíti zjistit jestli je daná MAC address právě připojena. Jdu na to přes kód, který propingá celou síť:

           int a = 0;

            while (a < 255)
            {


                string ipadress = "192.168.1." + a;
                int timeout = 7;

                Ping gon = new Ping();
                PingReply cevap = gon.Send(ipadress, timeout);

                a++;
            }


a potom dále přes ARP :

       System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo("cmd", "/c " + "arp -a");
                procStartInfo.RedirectStandardOutput = true;
                procStartInfo.UseShellExecute = false;     
                procStartInfo.CreateNoWindow = true;     
                System.Diagnostics.Process proc = new System.Diagnostics.Process();
                proc.StartInfo = procStartInfo;
                proc.Start();        
                string result = proc.StandardOutput.ReadToEnd();
                label25.Text = result;


jen je problém, že je to strašně pomalé a nepraktické :( a sem tam jak pingám tak to hodí modrou smrt :D můžete mi poradit nějakou jinou věc co se dá na to použít nebo jak kód optimalizovat?

Děkuji s pozdravem Jirka.

Nahlásit jako SPAM
IP: 78.102.74.–
z
~ Anonymní uživatel
268 příspěvků
26. 1. 2014   #2
-
0
-
Nahlásit jako SPAM
IP: 88.101.8.–
JirkaX0
Newbie
26. 1. 2014   #3
-
0
-

Nemáš zdroják toho programu?

Nahlásit jako SPAM
IP: 78.102.74.–
z
~ Anonymní uživatel
268 příspěvků
Nahlásit jako SPAM
IP: 88.101.8.–
JirkaX0
Newbie
26. 1. 2014   #5
-
0
-

Nějak moc si s tím nevím rady. :( Můžete někdo pomoct?

Edit: Já bych potřeboval něco do svojí aplikace. abych potom mohl pomocí podmínky zkontrolovat jestli je v sítí ta MAC adresa pokud ano program pokračuje dále pokud není ukáže se hláška "MAC adressa neni pripojena opakujte pozdeji" atd...  

Nahlásit jako SPAM
IP: 78.102.74.–
z
~ Anonymní uživatel
268 příspěvků
26. 1. 2014   #6
-
0
-

A S ČÍM?

string baseAddr = "192.168.1.";
int timeout = 7;

Semaphore sem  = new Semaphore(0,255);

for (int i = 0; i < 255; ++i)
{
    Ping p = new Ping();
    p.PingCompleted += delegate(object sender, PingCompletedEventArgs e) { ((Semaphore)e.UserState).Release(); };
    p.SendAsync(baseAddr + i, timeout, sem);
}

for (int i = 0; i < 255; ++i)
{
    sem.WaitOne();
}
Nahlásit jako SPAM
IP: 88.101.8.–
JirkaX0
Newbie
27. 1. 2014   #7
-
0
-

Už je to v pořádku všemu rozumím a strašně děkuji za post. Jen mě teď napadlo co když bude síť o IP adrese 192.XX.XX.XX a o Masce 255.0.0.0 tímto příkladem nepropingám celou sít ale jen polovičku. Můžete prosím poradit jak mám postupovat v takovém případě? Chtěl jsem si v C# vypsat i masku sítě ale nějak se nedaří ať dělám cokoliv tak pořád tam je 0.0.0.0 :(

Nahlásit jako SPAM
IP: 78.102.74.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 18 hostů

Podobná vlákna

Ping — založil antton

Ping na server — založil Kubas129

Nefunguje ping — založil Paja2

Ping to Boolean — založil palo.jaros

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý