python 2.7 scappyを使ってsynのインスタンスを送信します。
私は余計なことを言わないで、コードを見てください。
インターネットを通じて現在見つかったいくつかの方法を調べます。
環境はwindowとlinuxシステムを使います。
nmapを使うと、python-nmapはマシンに依存してnmapツールをインストールする必要があります。
コンソール命令でarp-a
scappyモジュールを通じて(マシンipv 6が禁止されていない必要があります)
直接mac.pyを使うことができます。
pip install mac.py
以上のpython 2.7はscappyを使ってsynを送りました。その例は小編集で皆さんに提供した内容の全部です。参考にしていただければと思います。よろしくお願いします。
from scapy.all import *
def syn():
scrIP = '192.168.10.29'
srcPort = 23345
desIP = '12.39.27.23'
desPort = 8000
ip = IP(src=scrIP, dst=desIP)
tcp = TCP(sport=srcPort, dport=desPort, seq=13131342, flags='S')
pkg = ip/tcp
# c->s syn
res = sr1(pkg)
res.display()
補足知識:pythonでipでmacとネットカードのタイプ(同じセグメント)を取得するインターネットを通じて現在見つかったいくつかの方法を調べます。
環境はwindowとlinuxシステムを使います。
nmapを使うと、python-nmapはマシンに依存してnmapツールをインストールする必要があります。
import nmap
nm=nmap.PortScanner()
nm.scan('xxx.xxx.xxx.xxx','xx') # ip ,
a=nm['xxx.xxx.xxx.xxx'] #
print(a)
##################################
{'status': {'state': 'up', 'reason': 'arp-response'},
'hostnames': [{'type': 'PTR', 'name': 'bogon'}],
'vendor': {'00:0C:29:F6:2B:F0': 'VMware'},
'addresses': {'mac': '00:0C:29:F6:2B:F0', 'ipv4': 'xxx.xxx.xxx.xxx'},
'tcp': {111: {'product': 'Microsoft Windows 7 - 10 microsoft-ds', 'state': 'open', 'version': '', 'name': 'microsoft-ds', 'conf': '10', 'extrainfo': 'workgroup: WORKGROUP', 'reason': 'syn-ack', 'cpe': 'cpe:/o:microsoft:windows'}}}
この方法は非常に簡単ですが、時間がかかりますので、ご利用をお勧めしません。コンソール命令でarp-a
def output_cmd(command):
r = os.popen(command)
content = r.read()
r.close()
return content
def arp_command(ip_address):
ping_cmd = "ping " + ip_address + " -n 2 "
result = output_cmd(ping_cmd)
find_ttl = result.find("TTL")
if find_ttl != -1:
arp_cmd = "arp -a %s" % ip_address
arp_result = output_cmd(arp_cmd)
ip2 = ip_address + " [ ]+([\w-]+)"
ip2_mac = re.findall(ip2, arp_result)
if len(ip2_mac):
return ip2_mac[0]
else:
return 0
else:
result = u' ip'
return result
これは最初のpingを通じて、arp-a ipでmacアドレスを取得します。このような方法はデータを入手した後、自分で正則整合macアドレスを通過します。デモはwindowでのマッチングです。linuxは自分で整合規則を修正する必要があります。scappyモジュールを通じて(マシンipv 6が禁止されていない必要があります)
from scapy.all import *
arp_pkt = Ether(dst="ff:ff:ff:ff:ff:ff") / ARP(pdst=ip)
res = srp1(arp_pkt, timeout=1, verbose=0)
print {"localIP": res.psrc, "mac": res.hwsrc}
arpreqモジュールによる
[root@oradb ~]# python
Python 2.7.5 (default, Aug 4 2017, 00:39:18)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import arpreq
>>> arpreq.arpreq('192.168.xx.xxx')
'xx:xx:xx:xx:xx:xx'
上記の方法でmacアドレスを取得して、ネットワークカードの種類を取得する。直接mac.pyを使うことができます。
pip install mac.py
from macpy import Mac
mac = Mac()
information = mac.search(00-11-F1-01-01)
print information
まだ情報が古いと感じたら、自分でマニュアルでIEEEの上にmacとネットカードのメーカーの比較ファイルをダウンロードしてください。以上のpython 2.7はscappyを使ってsynを送りました。その例は小編集で皆さんに提供した内容の全部です。参考にしていただければと思います。よろしくお願いします。