综合网上查到的内容,写的Python发送邮件的类。附件部分还没写好,主要是附件的文件名部分还不对。
#!/usr/bin/env python
# coding:utf-8
import email
import smtplib
class Mailer:
def __init__(self, smtp_host, smtp_user, smtp_passwd, smtp_port = 25) :
self.smtp_host = smtp_host
self.smtp_user = smtp_user
self.smtp_passwd = smtp_passwd
self.smtp_port = smtp_port
self.mail = email.MIMEMultipart.MIMEMultipart('main')
self.attachments = []
def mailfrom(self, mail_from) :
self._from = mail_from
self.mail['from'] = mail_from
def mailto(self, mail_to) :
"""
mail_to : comma separated emails or a list
"""
if type(mail_to) == list:
self.mail['to'] = ','.join(mail_to)
self._to = mail_to
elif type(mail_to) == str :
self.mail['to'] = mail_to
if mail_to.find(',') > 0 :
......
下载了很多压缩文件,就写了一个脚本
在Python中使用winrar命令,所以一般压缩文件都支持
有些压缩文件Python中还没有相应的库
你得先把winrar添加到path环境变量中
把代码保存为rar.py
在dos下使用,如:rar.py "D:\A B\C" mkdir
#rar.py
#decompress with winrar
#arguments :filename directory opt
# opt='mkdir' to create directory with the correspond filename
# opt='direct' to decompress rar files in current directory
# opt='mk&del' to mkdir and delete rar file
import os
import sys
if len(sys.argv)!=3:
print ('wrong arguments\n')
print ('rar.py directory opt\n')
print ('opt=\'mkdir\' to create directory with the correspond filename\n')
print ('opt=\'direct\' to decompress rar files in current directory\n')
print ('opt=\'mk&del\' to mkdir and delete rar file\n')
exit(0)
#-ibck ,minimized when running
opt=sys.argv[2]
os.chdir(sys.argv[1])
for file in os.listdir('.'):
if os.path.isfile(file) and os.path.splitext(file)[1]=='.r ......
Ethereal 自带许多协议的 decoder,简单,易用,基于winpcap的一个开源的软件.但是它的架构并不灵活,如何你要加入一个自己定义的的解码器,得去修改 Ethereal的代码,再重新编译,很烦琐.对于一般的明文 协议,没有什么问题,但是对于加密协议,比如网络游戏,客户端程序一般会在刚连接上的时候,发送一个随机密钥,而后的报文都会用这个密钥进行加密,如此. 要想破解,得要有一个可编程的抓包器.
libpcap是一个不错的选择,但是对于抓包这样需要反复进行”试 验->修改”这个过程的操作,c 语言显然不是明智的选择.
Python提供了几个libpcapbind,http://monkey.org/~dugsong/pypcap/这里有 一个最简单的。在windows平台上,你需要先安装winpcap,如果你已经安装了Ethereal非常好用
一个规范的抓包过程
import pcap
import dpkt
pc=pcap.pcap() #注,参数可为网卡名,如eth0
pc.setfilter('tcp port 80') #设置监听过滤器
for ptime,pdata in pc: #ptime为收到时间,pdata为收到数据
print ptime,pdata #...
对抓到的以太网V2数据包(raw packet)进行解包
p=dpkt.ethernet.E ......
一、python是什么?
其实,python就是一门编程语言,就像java一样。本来是在电脑上的,但是随着手机的流行,python被移植到了手机上,同时也被命名为pyS60。
二、py软件的构造
所有的py软件都要包括如下文件:.app--1.65k;.rsc--337b;.aif。这三个文件在所有py软件中都是相同的,唯一的区别就是软件的uid不同。这些文件其实就是一个py文件的壳,软件的真正起作用部分是在.py或.pyc文件里。
软件的app默认读取default.py这个文件,所有py代码可以直接写在这个文件里。也可以在default.py里写import xxx(意思就是引入xxx.py/pyc),然后把代码写在xxx.py这个文件里。如果你不想让你的代码被别人很轻易的看到,可以把xxx.py编译成pyc(软件:decompile)
三、如何运行py软件?
1. 首先要确定你的手机里安装了适合机型的python平台,建议再安装增强模块以保证能运行部分py软件。
2. py软件安装之后会在功能表里显示图标,像打开普通软件那样打开就可以了。如果软件打不开请检查是否正确安装python平台和增强模块。
3. 部分软件会显示口口,建议安装字库,因为软件开发者没有设置默认显示字体
四、如何开发py软件?
其实py软件开发是非常简单的。用文本编辑把代码写出 ......
今天看看如何用python实现抓包。
以前我们曾用过winpcap实现抓包,其实今天我们还是用它,只不过是它在python下的模块,在用之前我们必须先下载两个库,pcap库和dpkt库,这个可以在Google code里很容易找到,需要注意的是pcap只支持到python2.5 ,所以我们要用2.5来编写。
安装完两个库以后,我们就先来认识一下两个库。
首先看pcap。
我们在命令行输入:import pcap如果回车后没有出错信息,则说明我们安装成功了,然后我们利用help命令来查看一下帮助信息。
模块的说明:This module provides a high level interface to packet capture systems.All packets on the network, even those destined for other hosts, areaccessible through this mechanism.
关于它的类,这里只说下最重要的一个pcap类:
class pcap(__builtin__.object)
pcap(name=None, snaplen=65535, promisc=True, immediate=False, timeout_ms=None) -> packet capture object。Open a handle to a packet capture descriptor.
name &nb ......
#!/usr/bin/env python2
import pcap
import sys
import string
import time
import socket
import struct
protocols={socket.IPPROTO_TCP:'tcp',
socket.IPPROTO_UDP:'udp',
socket.IPPROTO_ICMP:'icmp'}
def decode_ip_packet(s):
d={}
d['version']=(ord(s[0]) & 0xf0) >> 4
d['header_len']=ord(s[0]) & 0x0f
d['tos']=ord(s[1])
d['total_len']=socket.ntohs(struct.unpack('H',s[2:4])[0])
d['id']=socket.ntohs(struct.unpack('H',s[4:6])[0])
d['flags']=(ord(s[6]) & 0xe0) >> 5
d['fragment_offset']=socket.ntohs(struct.unpack('H',s[6:8])[0] & 0x1f)
d['ttl']=ord(s[8])
d['protocol']=ord(s[9])
d['checksum']=socket.ntohs(struct.unpack('H',s[10:12])[0])
d['source_address']=pcap.ntoa(struct.unpack('i',s[12:16])[0])
d['destination_address']=pcap.ntoa(struct.unpac ......