python2.7使用scapy發(fā)送syn實(shí)例
我就廢話不多說了,大家看代碼吧!
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()
補(bǔ)充知識(shí):用python 通過ip獲取mac和網(wǎng)卡類型(同一網(wǎng)段)
通過網(wǎng)上查閱目前找到的幾種方式
環(huán)境使用window和linux系統(tǒng)
使用nmap,python-nmap需要依賴機(jī)器安裝nmap工具
import nmapnm=nmap.PortScanner()nm.scan(’xxx.xxx.xxx.xxx’,’xx’) # ip地址和端口,端口不填也可以a=nm[’xxx.xxx.xxx.xxx’] #返回主機(jī)的詳細(xì)信息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’}}}
這種方式獲取非常簡單,但是會(huì)耗費(fèi)很大的時(shí)間,不建議使用
通過控制臺(tái)命令arp -a
def output_cmd(command): r = os.popen(command) content = r.read() r.close() return contentdef 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
這個(gè)是通過先ping,之后在arp -a ip 來獲取mac地址,這種方式需要拿到數(shù)據(jù)后自行去通過正則匹配mac地址,演示的為window上的匹配,linux需要自行修改匹配規(guī)則
通過scapy模塊(必須機(jī)器ipv6未被禁止)
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 ~]# pythonPython 2.7.5 (default, Aug 4 2017, 00:39:18) [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)] on linux2Type 'help', 'copyright', 'credits' or 'license' for more information.>>> import arpreq>>> arpreq.arpreq(’192.168.xx.xxx’)’xx:xx:xx:xx:xx:xx’
通過上述方法獲取mac地址之后獲取網(wǎng)卡類型
可以直接使用mac.py
pip install mac.py
from macpy import Macmac = Mac()information = mac.search(00-11-F1-01-01)print information
如果感覺信息還是有點(diǎn)老的話,需要自己手動(dòng)去IEEE上面下載mac和網(wǎng)卡廠商的比對(duì)文件自行比對(duì)就行了
以上這篇python2.7使用scapy發(fā)送syn實(shí)例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. PHP循環(huán)與分支知識(shí)點(diǎn)梳理2. ASP基礎(chǔ)入門第三篇(ASP腳本基礎(chǔ))3. 解析原生JS getComputedStyle4. 無線標(biāo)記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)第1/2頁5. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)6. ASP實(shí)現(xiàn)加法驗(yàn)證碼7. 讀大數(shù)據(jù)量的XML文件的讀取問題8. css代碼優(yōu)化的12個(gè)技巧9. 利用CSS3新特性創(chuàng)建透明邊框三角10. 前端從瀏覽器的渲染到性能優(yōu)化
