Archive for ‘Python’ Category

2015/09/22

pcap 文件通常用 wireshark 工具打开。 wireshark 在抓取和分析网络数据包的时候非常有用,不得不说它是一个很强大的工具。用wireshark 打开pcap文件后,所有的信息一目了然,但是作为一个(伪)geek ,还是需要有一点刨根问底的精神的,总想自己手动解析一次,那么这次就来玩转一下 pcap 文件。 首先看一下 pcap 的文件格式,出乎意料的是pcap的格式非常简单。     Pcap Header 是整个文件的头部,存放了关于这个pcap的一些信息。之后每个被捕获的数据包用一个(Head, Data)表示,Head里是关于这个数据包的捕获时间等信息,后面的Data就是这个数据包了。Data包含了MAC帧之上的所有内容。

3,666 views
2012/09/23

OpenStack Object Storage(Swift)是OpenStack开源云计算项目的子项目之一, 是整个OpenStack项目的一个模块。 Swift最适合的就是永久类型的静态数据的长期存储。 比如虚拟机的镜像啦,文档的备份啦,还有陈老师、李老师的艺术作品啦之类的。 先来熟悉一下Swift中的几个概念: Account 出于访问安全性考虑,使用Swift系统,每个用户必须有一个账号(Account)。只有通过Swift验证的账号才能访问Swift系统中的数据。提供账号验证的节点被称为Account Server。Swift中由Swauth提供账号权限认证服务。用户通过账号验证后将获得一个验证字符串(authentication token.),后续的每次数据访问操作都需要传递这个字符串。 Container Swift中的container可以类比Windows操作系统中的文件夹或者Unix类操作系统中的目录,用于组织管理数据,所不同的是container不能嵌套。数据都以Object的形式存放在container中

Tags: . 222,088 views
2011/08/18

Python 新旧版本之间的语法不兼容,导致iBus图标不显示,候选词框也不显示;导致Wicd无法启动。如下图所示。 问题产生: 由于Ubuntu默认安装了python2.6 ,后来我自己又装了python3.1,但是在终端里面输入python启动的是2.6版本的,这个是系统的默认,我们可以查看/usr/bin/目录,如图:   可以看到,python实际上是一个软链接,指向了python2.6 。我把它修改指向python3.1,这样输入python直接启动3.1了,方便我在终端下启动python3.1的交互界面。 这样做带来了文章开头所说的问题,一开始我没想到跟python有关,以为是什么配置文件出错了,于是网上google之,用了不少方法都没有解决问题,后来想:在终端下启动,应该会有一些出错信息吧。于是我输入wicd ,果然出现了错误提示: File “/usr/share/wicd/daemon/wicd-daemon.py”,line 122 print “–no-autoconnect detected,not autoconnecting…” SyntaxError: invalid syntax 看到这句话第一反应是:程序的源码出现语法错误了?不可能啊,以前还正常运行过。 于是打开源代码。 看到print 这一句我恍然大悟了,因为在python3.X中是不允许这样的语法的,这个是2.X的语法,于是知道肯定是修改python链接的指向导致了这个问题,解决办法就是修改回去喽。之后这两个程序都正常显示图标,也能正常使用了。 写这篇文章的意义在于: 1、blog很久没更新了,发一篇充数。 2、发现了另外一种导致iBus 和wicd 等依赖python的程序无法正常启动的原因。网上很多iBus的错误都集中在配置文件和环境变量方面,像我这样的python版本之间语法不兼容导致的错误倒是没看到,所以记录之。

Tags: . 5,199 views
2011/07/22

学习python已经有2个月了,当然,是那种断断续续式的学习,囫囵吞枣的把《A byte of Python》看完了,大概知道了python的几个数据类型,了解了一些语法,然后又开始看《Dive into Python3》。 忘了提一句,我学的是Python3.X 而不是2.X。当初也是为了追求“最新”而选的,3.x和2.x的差别还是比较大的,很多时候遇到问题google一下发现网上的解决方法是2.x的,并不适用于3.x,无奈之下只好去翻官方手册。但是3.x的规范毕竟是以后Python语言的发展趋势,唯一的遗憾是目前很多第三方库还不支持3.x,比如图形库wxPython只支持2.x。 由于经常泡在豆瓣上,突然想起玩玩豆瓣的api,也顺便拿python练练手,学了这么长时间的python还没写过什么程序呢。于是就有了本文。 程序原理很简单,无非是通过api获取一些数据,然后在豆瓣返回的数据中提取有用的信息。输入豆瓣ID,然后显示昵称、个人简介等等。代码和截图如下。 Python老手以及熟悉网络开发的同学请无视~             import httplib2import xml.etree.ElementTree as etree h=httplib2.Http()name=input('Douban ID:') response,content=h.request('http://api.douban.com/people/'+name)string=bytes.decode(content) root=etree.fromstring(string) title=root.find('{http://www.w3.org/2005/Atom}title')bio=root.find('{http://www.w3.org/2005/Atom}content')links=root.findall('{http://www.w3.org/2005/Atom}link') for child in links:    if child.attrib['rel']=='homepage':        hp=child.attrib['href']print('[江湖人称]: {0}'.format(title.text))print('[自我简介]: {0}'.format(bio.text))print('[个人主页]: {0}'.format(hp))

Tags: . 12,749 views