Picproje Elektronik Sitesi

SERBEST BÖLGE => İnternet => Konuyu başlatan: baran123 - 09 Eylül 2015, 21:08:49

Başlık: MAC den IP adresi bulma
Gönderen: baran123 - 09 Eylül 2015, 21:08:49
MAC adresini bildiğim bir Client olsun.
C# ile aynı ağa bağlı cihazlar arasında bu MAC adreslerine bakarak IP yi nasıl bulabiliriz ?
Başlık: Ynt: MAC den IP adresi bulma
Gönderen: sovalye - 09 Eylül 2015, 21:28:27
Modeme erişip ordan baktırmak dışında bir şansınız olduğunu sanmıyorum. Çünkü ip sini veya adını bilmediğiniz bir cihazla iletişim kuramazsınız.
Ya da clientlere Program yerleştirebiliyorsanız tüm ağ a brute force ile mesaj yollarsınız, clientler kendileri mac lerine bakıp size geri dönüş yaparlar.
Başlık: Ynt: MAC den IP adresi bulma
Gönderen: baran123 - 09 Eylül 2015, 21:30:29
cmd ye "arp -a" yazınca çıkıyor ama ?
Başlık: Ynt: MAC den IP adresi bulma
Gönderen: sovalye - 09 Eylül 2015, 21:38:26
Kendi bildiğim şekilde yazmıştım. Yanlışım varsa affola. Sizin dediğinizi bilmiyordum. Deneme yaptım ama ağdaki aletlerin ne ip adreslerini ne de gerçek mac lerini de görebiliyorum.  Arp -a nın verdiği değerler alakasız görünüyor. Araştırıyorum.
Başlık: Ynt: MAC den IP adresi bulma
Gönderen: Burak B - 09 Eylül 2015, 21:43:23
Arp üzerinden yapabilirsin.
Başlık: Ynt: MAC den IP adresi bulma
Gönderen: baran123 - 09 Eylül 2015, 21:44:53
Yok hocam estağfurullah :)
Ben arp -a yı rasgele gezinirken gördüm.Deneyeyince ağdaki cihazların ip ve mac edreslerini gördüm.
Şimdi baktım da sadece benim bilgisayarım ve cihazın ip si görünüyor.
ESP kullanıyorum TCP server olarak çalışıyor.Bilgisayar ise Ethernetle bağlı.
Fakat internete yine esp gibi wifi ye bağlanan tablet gözükmüyor.

mesaj birleştirme:: 09 Eylül 2015, 21:45:56

@Burak BAYRAK hocam
C# da bu cmd komutlarını işleyebilir miyim ?

mesaj birleştirme:: 09 Eylül 2015, 21:50:49

Ahanda bir method buldum.


static void ExecuteCommandSync(object command)
        {
            try
            {
                // create the ProcessStartInfo using "cmd" as the program to be run,
                // and "/c " as the parameters.
                // Incidentally, /c tells cmd that we want it to execute the command that follows,
                // and then exit.
                System.Diagnostics.ProcessStartInfo procStartInfo =
                    new System.Diagnostics.ProcessStartInfo("cmd", "/c " + command);

                // The following commands are needed to redirect the standard output.
                // This means that it will be redirected to the Process.StandardOutput StreamReader.
                procStartInfo.RedirectStandardOutput = true;
                procStartInfo.UseShellExecute = false;
                // Do not create the black window.
                procStartInfo.CreateNoWindow = true;
                // Now we create a process, assign its ProcessStartInfo and start it
                System.Diagnostics.Process proc = new System.Diagnostics.Process();
                proc.StartInfo = procStartInfo;
                proc.Start();
                // Get the output into a string
                string result = proc.StandardOutput.ReadToEnd();
                // Display the command output.
                Console.WriteLine(result);
            }
            catch (Exception objException)
            {
                // Log the exception
            }
        }

// Kullanımı
ExecuteCommandSync("arp -a");


Artık dönen değer içinde arama yapabilirim. :)
Başlık: Ynt: MAC den IP adresi bulma
Gönderen: Burak B - 09 Eylül 2015, 21:51:39
Direkt C# ile yapamasan bile Win32 sana bu konuda baya yardımcı olacaktır. Bir araştır bence. Zira C# içerisinden DLL dosyalarına erişebiliyorsun.  ;)
Başlık: Ynt: MAC den IP adresi bulma
Gönderen: mufitsozen - 09 Eylül 2015, 22:14:26
sevgili Baran, daha once bu konuda bir aciklama yapmistim picprojede.

ARP komutu surelidir eger makinandan tablodaki IP adreslerine belli bir sure trafik olmazsa tablodan silinir.
O yuzden en guzeli, bulundugun (sub)network uzerinde ping ile bir broadcast etmek. Boylece ARP tablosunu ping'e cevap veren butun cihazlarin MAC-IP adresleri ile doldursun
ondan hemen sonra ARP - a komutunu verirsen bu tabloyu gorursun.

https://www.picproje.org/index.php/topic,60040.msg464170.html#msg464170 (https://www.picproje.org/index.php/topic,60040.msg464170.html#msg464170)

yani C# ile ping broadcast yap, sonra ARP -a komutunun ciktisini al ve parse et.



Başlık: Ynt: MAC den IP adresi bulma
Gönderen: MC_Skywalker - 09 Eylül 2015, 22:18:06
birde bağlı bununduğun Router/Swithc te arp broadcast engellenmiş olmasın.
Başlık: Ynt: MAC den IP adresi bulma
Gönderen: baran123 - 09 Eylül 2015, 22:53:05
@mufitsozen hocam anladım.
Ben bu işlemi ip leri öğrenmek için yapıyorum.
Mesela arp -a gönderince dönen text de şu şekilde ifadeler oluyor.
IP ---- MAC ---- TYPE
bu text leri satır satır tarıyorum.
Bu satırların içinde benim bildiğim MAC adresi var ise o satırdaki ip benim cihaz oluyor.(bence kötü bir yöntem ?)

Peki önce bir ping broadcast yapmak için ip girmek gerekmiyor mu ? Topluca ping atmak mümkün mü (sabit bir ip olmadan yani )?
Ayrıca
Alıntı YapARP komutu surelidir
Bu engin bilgileri öğrenebileceğimiz kaynak gösterebilir misiniz ? :D
Başlık: Ynt: MAC den IP adresi bulma
Gönderen: Burak B - 09 Eylül 2015, 23:05:32
Bknz. 255.255.255.255
Başlık: Ynt: MAC den IP adresi bulma
Gönderen: RaMu - 09 Eylül 2015, 23:16:24
Biraz konu dışı gibi olacak ama kusura bakmayın merak ettim:
Bunu kullanarak wifi ağıma kimler yada kaç kişi bağlı görebilir miyim?

cmd.exe ye ARP -a yazdığımda
ne çıkması lazım?

Başlık: Ynt: MAC den IP adresi bulma
Gönderen: baran123 - 09 Eylül 2015, 23:18:37
Alıntı yapılan: RaMu - 09 Eylül 2015, 23:16:24
Biraz konu dışı gibi olacak ama kusura bakmayın merak ettim:
Bunu kullanarak wifi ağıma kimler yada kaç kişi bağlı görebilir miyim?

cmd.exe ye ARP -a yazdığımda
ne çıkması lazım?
Çok garanti değil mesela benim tablet gözükmüyor(acaba neden ?)
Ben modem arayüzüne girip bağlı olan cihazların hepsini görebiliyorum.

Hocam ben modem arayüzünden bağlı olan ip leri görebiliyorum
ARP ile yaptığımda ise tablet gözükmüyor (acaba neden ?)

@mufit hocam ipconfig de şöyle dönüm oluyor.

C:\Windows\system32>ipconfig

Windows IP Configuration


Ethernet adapter Local Area Connection 2:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::b0e5242c:c764:e2b0:a315%14
   IPv4 Address. . . . . . . . . . . : 192.168.95.1
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . :

Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix  . :
   IPv6 Address. . . . . . . . . . . : fdec:233d:65cb:5700:dfb:5sdas386:2b2c:ce47
   Temporary IPv6 Address. . . . . . : fddec:233d:65asdcb:5700:54a:756sa:b6ab:9ab8
   Link-local IPv6 Address . . . . . : fes80::dfb:5386:2bd2c:cde47%11
   IPv4 Address. . . . . . . . . . . : 192.168.1.2
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.1.1

şu şekilde ping atmayı deniyorum.
ping -n 5 -w 100 192.168.1.255
ama full lost oluyor
Başlık: Ynt: MAC den IP adresi bulma
Gönderen: mufitsozen - 09 Eylül 2015, 23:49:31
Alıntı yapılan: Baran Ekrem - 09 Eylül 2015, 23:18:37
Hocam ben modem arayüzünden bağlı olan ip leri görebiliyorum
ARP ile yaptığımda ise tablet gözükmüyor (acaba neden ?)

@mufit hocam ipconfig de şöyle dönüm oluyor.

C:\Windows\system32>ipconfig

Windows IP Configuration


Ethernet adapter Local Area Connection 2:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::b0e5242c:c764:e2b0:a315%14
   IPv4 Address. . . . . . . . . . . : 192.168.95.1
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . :

Ethernet adapter Local Area Connection:

   Connection-specific DNS Suffix  . :
   IPv6 Address. . . . . . . . . . . : fdec:233d:65cb:5700:dfb:5sdas386:2b2c:ce47
   Temporary IPv6 Address. . . . . . : fddec:233d:65asdcb:5700:54a:756sa:b6ab:9ab8
   Link-local IPv6 Address . . . . . : fes80::dfb:5386:2bd2c:cde47%11
   IPv4 Address. . . . . . . . . . . : 192.168.1.2
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.1.1

şu şekilde ping atmayı deniyorum.
ping -n 5 -w 100 192.168.1.255
ama full lost oluyor

senin networkun (ipconfig'den) 192.168.95.x ve subnet mask'da 255.255.255.0

demekki soyle yazman lazim:

ping -n 5 -w 100 192.168.95.255
Başlık: Ynt: MAC den IP adresi bulma
Gönderen: baran123 - 09 Eylül 2015, 23:52:36
Hocam yine bir hata var gibi ?


C:\Windows\system32>ping -n 5 -w 100 192.168.95.255

Pinging 192.168.95.255 with 32 bytes of data:
Request timed out.
Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 192.168.95.255:
    Packets: Sent = 5, Received = 0, Lost = 5 (100% loss),

C:\Windows\system32>