2014-03-05 48 views
2

我要尋找一個Python的方式搶客戶端的MAC地址。所有請求都在同一網絡上。我在尋找類似的東西在路由器上進行arp -n <Client_IP>我怎樣才能找到一個客戶端在同一網絡上的MAC地址,使用Python瓶?

+2

可能是你能做到這一點,首先找到你想找到的MAC機器的IP,然後從IP發現使用這個兩個環節的MAC [找到MAC的IP(http://stackoverflow.com/questions/159137 /獲取-MAC地址)和[查找IP(http://stackoverflow.com/questions/3759981/get-ip-address-of-visitors-using-python-flask) –

+0

我沒有太多網絡的經驗,所以我不明白我能如何結合這兩個答案。第一個鏈接提供了一種方法來查看我自己的網絡接口的mac地址,第二個鏈接提供了一種查找請求用戶ip的方法。你能解釋我怎麼能把這些結合起來? – cemclaug

回答

3

不知道,但你可以使用像

request.remote_addr請求對象總是得到IP地址和你要

import request然後你就可以通過這個IP這個功能

import netifaces as nif 

def mac_for_ip(ip): 
    'Returns a list of MACs for interfaces that have given IP, returns None if not found' 
    for i in nif.interfaces(): 
     addrs = nif.ifaddresses(i) 
     try: 
      if_mac = addrs[nif.AF_LINK][0]['addr'] 
      if_ip = addrs[nif.AF_INET][0]['addr'] 
     except IndexError, KeyError: #ignore ifaces that dont have MAC or IP 
      if_mac = if_ip = None 
     if if_ip == ip: 
      return if_mac 
    return None 

here

相關問題