簡介
Python是一種跨平台的計算機程序設計語言。是一種面向對象的動態類型語言,python中有許多常見的庫,
要想了解這些庫的作用及用法就先了解一下這些庫的主要功能吧!(自己整理的筆記,僅作參考!!)
requests爬蟲信息處理
requests是使用Apache2 licensed 許可證的HTTP庫。
from bs4 import BeautifulSoup import requests r = requests.Session() s = r.get("http://123.206.87.240:8002/qiumingshan/") s.encoding = 'utf-8' text = s.text soup = BeautifulSoup(text) tag = soup.div express = str(tag.string) express = express[0 : -3] answer = eval(express) ans = {"value" : answer} flag = r.post('http://123.206.87.240:8002/qiumingshan/', data = ans) print(flag.text)實驗吧 速度爆破: http://www.shiyanbar.com/ctf/1841
scapy
數據包完全是自己構造的,這其中的難處一是要清楚各層協議的字段、字段長度、字段是數值還是字符。
代碼如下:
from scapy.all import * #數據包應用層數據部分 data='xiaoyu' #發送端IP地址10.0.3.83不是本機ip地址 目的端IP地址不詳 傳輸層的TCP並未指明數據包類型:syn fin ack 窗口大小 數據包如果分片,要指明序號 pkt=IP(src='10.0.3.83',dst='10.0.3.88')/TCP(sport=12345,dport=5555)/data #間隔一秒發送一次 總共發送5次 發送網卡口:enp1s0 send(pkt,inter=1,count=5,iface="enp1s0")
optparse 處理命令行參數
讓程序設計人員輕松設計出簡單明了,易於使用,符合標准的Unix命令例程式的Python模塊。生成使用和幫助信息
首先必須導入該類,並創建一個OptionParser對象,然后再使用parser.add_option(...)待定義命令行參數,及其幫助文檔。
每個命令行參數就是由參數名字符串和參數屬性組成的。如 -f 或者 file 分別是長短參數名:
parser.add_option("-f", "--file", ...)
將所有的命令行參數都定義好了的時候,我們需要調用parse_args()方法賴際熙add_option()函數依次傳入的參數:
options,args = parser.parser_args()
options 是一個字典,其key字典中的關鍵字可能會是是我們所有的add_option()函數中的dest參數值,其對應的value值,是命令行輸入的對應的add_option()函數的參數值。
args,它是一個由 positional arguments 組成的列表
threading多線程
threading模塊是Python里面常用的線程模塊,多線程處理任務對於提升效率非常重要,優點:同時利用多個cpu,能夠同時進行多個操作
import time import threading def f0(): pass def f1(a1,a2): time.sleep(5) f0() '''下面代碼是直接運行下去的,不會等待函數里面設定的sleep''' t= threading.Thread(target=f1,args=(111,112))#創建線程 t.setDaemon(True)#設置為后台線程,這里默認是False,設置為True之后則主線程不用等待子線程 t.start()#開啟線程 t = threading.Thread(target=f1, args=(111, 112)) t.start() t = threading.Thread(target=f1, args=(111, 112)) t.start() #默認情況下程序會等線程全部執行完畢才停止的,不過可以設置更改為后台線程,使主線程不等待子線程,主線程結束則全部結束
OS
os 模塊提供了非常豐富的方法用來處理文件和目錄。
典型代碼如下,打開local文件進行寫入
file = open("local.txt","a") file.write(ip) file.write("\n") file.write(out)
paramiko遠程控制
一個基於SSH用於連接遠程服務器並執行相關操作(SSHClient和SFTPClinet,即一個是遠程連接,一個是上傳下載服務),使用該模塊可以對遠程服務器進行命令或文件操作,值得一說的是,
fabric和ansible內部的遠程管理就是使用的paramiko來現實。
下載安裝:
pycrypto,由於 paramiko 模塊內部依賴pycrypto,所以先下載安裝pycrypto
pip3 install pycrypto
pip3 install paramiko
模塊使用
import paramiko # 創建SSH對象 ssh = paramiko.SSHClient() # 允許連接不在know_hosts文件中的主機 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) # 連接服務器 ssh.connect(hostname='c1.salt.com', port=22, username='GSuser', password='123') # 執行命令 stdin, stdout, stderr = ssh.exec_command('ls') # 獲取命令結果 result = stdout.read() # 關閉連接 ssh.close()
paramiko教程:https://www.cnblogs.com/lzc978/p/10978688.html
