2004年09月07日 星期二 16:09
还真有挑战性,初学python,有错误请指出: >>> a={'a':3,'b':5,'c':1,'d':4} >>> a {'a': 3, 'c': 1, 'b': 5, 'd': 4} >>> b=[x for x in a] >>> b ['a', 'c', 'b', 'd'] >>> c=[y for x,y in a.iteritems()] >>> c [3, 1, 5, 4] >>> d=dict(zip(c,b)) >>> d {1: 'c', 3: 'a', 4: 'd', 5: 'b'} 好像是达到要求了吧? > 现在已经有一个字典,Keys是英文单词,Values是这个单词在文件中出现的次数。 > 想要给这个字典重新排序,让出现次数最多的单词排第一位,出现次数最少的排最后。 > > 我尝试把字典里的values放入一个list里,在对list排序,但是好像排完也没有什么意义。很多单词的values值一样,就是排完也没有办法把把排序结果应用回原来的字典里。 > > 我能想当的另一个方案是,每个单词和后面的所有词比较,当遇到values比他大的,就改为values更大的单词开始比较,如果到最后都没有比他大的,就把这个词写入新字典里,同时在旧字典里删除自己,但是好像太弱智了点。 > > > 不知道还有什么其他更好地解决方案。 > > 谢谢~~~ > > 基础太差,时间又太紧,我问题好多,学得好辛苦 。 :( > > > ----------------------------------------------------------- 马上到http://www.126.com申请260M全国最大免费邮箱! 提供新邮件到达手机短信提醒功能, 随时掌握邮件信息!
2004年09月07日 星期二 16:11
请é®ï¼pcapå æ¯åªå¿å¾å°çï¼è°¢è°¢ï¼ Best Regards Sun Haitao | ----- 转å人 åæµ·æ¶123203/user/zte_ltd æ¶é´ 2004-09-07 16:14 ----- æ¢ å²æ¾ <stephen.cn at gmail.com> æ¶ä»¶äººï¼ python-chinese at lists.python.cn æéï¼ å¯éï¼ åä»¶äººï¼ ä¸»é¢ï¼ Re: [python-chinese] 请é®å¨pythonä¸å¦ä½æ建ä¸ä¸ªI CMP类似çIPå ç¶åååºå»ï¼ python-chinese-bounces at list s.python.cn 2004-09-07 16:01 请çå¤ ç» æ¢ å²æ¾; 请çå¤ ç» python-chinese è¿ä¸ªä¾åä½ çä¸ä¸ã æä¹æ²¡äººåçæçé®é¢å¢ï¼éé·ã #!/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.unpack('i',s[16:20])[0]) if d['header_len']>5: d['options']=s[20:4*(d['header_len']-5)] else: d['options']=None d['data']=s[4*d['header_len']:] return d def dumphex(s): bytes = map(lambda x: '%.2x' % x, map(ord, s)) for i in xrange(0,len(bytes)/16): print ' %s' % string.join(bytes[i*16:(i+1)*16],' ') print ' %s' % string.join(bytes[(i+1)*16:],' ') def print_packet(pktlen, data, timestamp): if not data: return if data[12:14]=='\x08\x00': decoded=decode_ip_packet(data[14:]) print '\n%s.%f %s > %s' % (time.strftime('%H:%M', time.localtime(timestamp)), timestamp % 60, decoded['source_address'], decoded['destination_address']) for key in ['version', 'header_len', 'tos', 'total_len', 'id', 'flags', 'fragment_offset', 'ttl']: print ' %s: %d' % (key, decoded[key]) print ' protocol: %s' % protocols[decoded['protocol']] print ' header checksum: %d' % decoded['checksum'] print ' data:' dumphex(decoded['data']) if __name__=='__main__': if len(sys.argv) < 3: print 'usage: sniff.py' sys.exit(0) p = pcap.pcapObject() dev = sys.argv[1] net, mask = pcap.lookupnet(dev) # note: to_ms does nothing on linux p.open_live(dev, 1600, 0, 100) p.setfilter(string.join(sys.argv[2:],' '), 0, 0) try: while 1: p.dispatch(1, print_packet) except KeyboardInterrupt: print '%s' % sys.exc_type print 'shutting down' print '%d packets received, %d packets dropped, %d packets dropped by interface' % p.stats() ----- Original Message ----- From: River <river at exoweb.net> Date: Tue, 7 Sep 2004 15:34:22 +0800 Subject: [python-chinese] 请é®å¨pythonä¸å¦ä½æ建ä¸ä¸ªI CMP类似çIPå ç¶åååº å»ï¼ To: python-chinese at lists.python.cn Cä¸å¾å®¹æå®ç°ï¼ä½å¨pythonä¸è½å¦è¿è¡å¢ï¼ è½ç¶è¿ä¸æ¯pythonçæ é¿ã è½å¦ä¸¾ä¸ªç®åä¾åï¼è°¢è°¢ã _______________________________________________ python-chinese list python-chinese at lists.python.cn http://python.cn/mailman/listinfo/python-chinese _______________________________________________ python-chinese list python-chinese at lists.python.cn http://python.cn/mailman/listinfo/python-chinese ******************************************* ±¾ÔÂ¼ï¿½ï¿½Ê¼ï¿½ï¿¢É§Â·ï¿ Ð,Â»ï¿½ï¿½ÂªÂ·ï¿ ×£ºhelpdesk at zte.com.cn ******************************************** (Embedded image moved to file: pic24596.pcx) ******************************************* ±¾ÓʼþÒѾ¹ýÀ¬»øÓʼþ¹ýÂË£¬Èç·¢ÏÖÀ¬»ø Óʼþ£¬Çëת·¢ÖÁ£ºhelpdesk at zte.com.cn ******************************************** -------------- next part -------------- A non-text attachment was scrubbed... Name: pic24596.pcx Type: application/octet-stream Size: 907 bytes Desc: not available Url : http://lists.exoweb.net/pipermail/python-chinese/attachments/20040907/ce92c48f/pic24596.obj
2004年09月07日 星期二 16:23
还是个字典呀。但字典是无序的。这样看上去好象可以,其实不行。 On Tue, 7 Sep 2004 16:09:55 +0800 (CST), jagucpu <jagucpu at 126.com> wrote: > 还真有挑战性,初学python,有错误请指出: > > >>> a={'a':3,'b':5,'c':1,'d':4} > >>> a > {'a': 3, 'c': 1, 'b': 5, 'd': 4} > >>> b=[x for x in a] > >>> b > ['a', 'c', 'b', 'd'] > >>> c=[y for x,y in a.iteritems()] > >>> c > [3, 1, 5, 4] > >>> d=dict(zip(c,b)) > >>> d > {1: 'c', 3: 'a', 4: 'd', 5: 'b'} > > 好像是达到要求了吧? > > > > 现在已经有一个字典,Keys是英文单词,Values是这个单词在文件中出现的次数。 > > 想要给这个字典重新排序,让出现次数最多的单词排第一位,出现次数最少的排最后。 > > > > 我尝试把字典里的values放入一个list里,在对list排序,但是好像排完也没有什么意义。很多单词的values值一样,就是排完也没有办法把把排序结果应用回原来的字典里。 > > > > 我能想当的另一个方案是,每个单词和后面的所有词比较,当遇到values比他大的,就改为values更大的单词开始比较,如果到最后都没有比他大的,就把这个词写入新字典里,同时在旧字典里删除自己,但是好像太弱智了点。 > > > > > > 不知道还有什么其他更好地解决方案。 > > > > 谢谢~~~ > > > > 基础太差,时间又太紧,我问题好多,学得好辛苦 。 :( > > > > > > > > ----------------------------------------------------------- > 马上到http://www.126.com申请260M全国最大免费邮箱! > 提供新邮件到达手机短信提醒功能, 随时掌握邮件信息! > > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > > -- I like python!
2004年09月07日 星期二 16:50
如我在前面所说,按照数据结构理论,字典本来就不应该在外界排序,因为手工排序可能会影响字典的工作效率,而大部分的字典,包括Python的,也确实按照这个思路实现的——我们不能对它的内部存储顺序进行直接有效的干涉,这不是技术达不到,是约定不允许。 On Tue, 7 Sep 2004 16:23:11 +0800, limodou <limodou at gmail.com> wrote: > 还是个字典呀。但字典是无序的。这样看上去好象可以,其实不行。 > > > > > On Tue, 7 Sep 2004 16:09:55 +0800 (CST), jagucpu <jagucpu at 126.com> wrote: > > 还真有挑战性,初学python,有错误请指出: > > > > >>> a={'a':3,'b':5,'c':1,'d':4} > > >>> a > > {'a': 3, 'c': 1, 'b': 5, 'd': 4} > > >>> b=[x for x in a] > > >>> b > > ['a', 'c', 'b', 'd'] > > >>> c=[y for x,y in a.iteritems()] > > >>> c > > [3, 1, 5, 4] > > >>> d=dict(zip(c,b)) > > >>> d > > {1: 'c', 3: 'a', 4: 'd', 5: 'b'} > > > > 好像是达到要求了吧? > > > > > > > 现在已经有一个字典,Keys是英文单词,Values是这个单词在文件中出现的次数。 > > > 想要给这个字典重新排序,让出现次数最多的单词排第一位,出现次数最少的排最后。 > > > > > > 我尝试把字典里的values放入一个list里,在对list排序,但是好像排完也没有什么意义。很多单词的values值一样,就是排完也没有办法把把排序结果应用回原来的字典里。 > > > > > > 我能想当的另一个方案是,每个单词和后面的所有词比较,当遇到values比他大的,就改为values更大的单词开始比较,如果到最后都没有比他大的,就把这个词写入新字典里,同时在旧字典里删除自己,但是好像太弱智了点。 > > > > > > > > > 不知道还有什么其他更好地解决方案。 > > > > > > 谢谢~~~ > > > > > > 基础太差,时间又太紧,我问题好多,学得好辛苦 。 :( > > > > > > > > > > > > > ----------------------------------------------------------- > > 马上到http://www.126.com申请260M全国最大免费邮箱! > > 提供新邮件到达手机短信提醒功能, 随时掌握邮件信息! > > > > > > _______________________________________________ > > python-chinese list > > python-chinese at lists.python.cn > > http://python.cn/mailman/listinfo/python-chinese > > > > > > > > > -- > I like python! > > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > > -- 刘鑫 March.Liu
2004年09月07日 星期二 21:22
http://sourceforge.net/project/showfiles.php?group_id=14007&package;_id=13826 On Tue, 7 Sep 2004 16:11:33 +0800, sun.haitao at zte.com.cn <sun.haitao at zte.com.cn> wrote: > 请问,pcap包是哪儿得到的?谢谢! > > Best Regards > Sun Haitao | > > ----- 转发人 孙海涛123203/user/zte_ltd 时间 2004-09-07 16:14 ----- > > 梅劲松 > <stephen.cn at gmail.com> 收件人: python-chinese at lists.python.cn > 抄送: > 密送: > 发件人: 主题: Re: [python-chinese] 请问在python下如何构建一个I CMP类似的IP包然后发出去? > python-chinese-bounces at list > s.python.cn > > 2004-09-07 16:01 > 请答复 给 梅劲松; 请答复 给 > python-chinese > > 这个例子你看一下。 > 怎么没人回答我的问题呢?郁闷。 > > #!/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.unpack('i',s[16:20])[0]) > if d['header_len']>5: > d['options']=s[20:4*(d['header_len']-5)] > else: > d['options']=None > d['data']=s[4*d['header_len']:] > return d > > def dumphex(s): > bytes = map(lambda x: '%.2x' % x, map(ord, s)) > for i in xrange(0,len(bytes)/16): > print ' %s' % string.join(bytes[i*16:(i+1)*16],' ') > print ' %s' % string.join(bytes[(i+1)*16:],' ') > > def print_packet(pktlen, data, timestamp): > if not data: > return > > if data[12:14]=='\x08\x00': > decoded=decode_ip_packet(data[14:]) > print '\n%s.%f %s > %s' % (time.strftime('%H:%M', > time.localtime(timestamp)), > timestamp % 60, > decoded['source_address'], > decoded['destination_address']) > for key in ['version', 'header_len', 'tos', 'total_len', 'id', > 'flags', 'fragment_offset', 'ttl']: > print ' %s: %d' % (key, decoded[key]) > print ' protocol: %s' % protocols[decoded['protocol']] > print ' header checksum: %d' % decoded['checksum'] > print ' data:' > dumphex(decoded['data']) > > if __name__=='__main__': > > if len(sys.argv) < 3: > print 'usage: sniff.py> sys.exit(0) > p = pcap.pcapObject() > > dev = sys.argv[1] > net, mask = pcap.lookupnet(dev) > # note: to_ms does nothing on linux > p.open_live(dev, 1600, 0, 100) > > p.setfilter(string.join(sys.argv[2:],' '), 0, 0) > > try: > while 1: > p.dispatch(1, print_packet) > > except KeyboardInterrupt: > print '%s' % sys.exc_type > print 'shutting down' > print '%d packets received, %d packets dropped, %d packets dropped > by interface' % p.stats() > > ----- Original Message ----- > From: River <river at exoweb.net> > Date: Tue, 7 Sep 2004 15:34:22 +0800 > Subject: [python-chinese] 请问在python下如何构建一个I CMP类似的IP包然后发出 > 去? > To: python-chinese at lists.python.cn > > C下很容易实现,但在python下能否进行呢, > 虽然这不是python的擅长。 > 能否举个简单例子,谢谢。 > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > ******************************************* > ±¾Ԋ¼��ʼ�¬ɧ·¢Ж,»��ª·¢ׁ£ºhelpdesk at zte.com.cn > ******************************************** > > (Embedded image moved to file: pic24596.pcx) > > ******************************************* > ���ʼ��Ѿ���,���ʼ����ˣ��緢��,�� > �ʼ�����ת���c�helpdesk at zte.com.cn > ******************************************** > > > _______________________________________________ > python-chinese list > python-chinese at lists.python.cn > http://python.cn/mailman/listinfo/python-chinese > > > > > '
Zeuux © 2025
京ICP备05028076号