Archive for the ‘技术 | 工作’ Category

以太网卡混杂模式与Sniffer程序学习

Tuesday, November 29th, 2011

Wikipedia

混杂模式(Promiscuous Mode)是计算机网络中的术语。是指一台机器的网卡能够接收所有经过它的数据流,而不论其目的地址是否是它。

一般计算机网卡都工作在非混杂模式下,此时网卡只接受来自网络端口的目的地址指向自己的数据。当网卡工作在混杂模式下时,网卡将来自接口的所有数据都捕获并交给相应的驱动程序。网卡的混杂模式一般在网络管理员分析网络数据作为网络故障诊断手段时用到,同时这个模式也被网络黑客利用来作为网络数据窃听的入口。在Liunx操作系统中设置网卡混杂模式,时需要管理员权限。在windows操作系统和Linux操作系统中都有使用混杂模式的抓包工具,比如著名的开源软件wireshark.

Linux下手动切换网卡(eth0)为(非)混杂模式。

默认为非混杂模式:

ifconfig eth0 -promisc

将eth0置为混杂(promiscuous):

ifconfig eth0 promisc

查看网卡是否混杂:

ifconfig eth0

输出若包含PROMISC则说明处于混杂模式。
例:

eth0 Link encap:以太网 硬件地址 xx:xx:xx:xx:xx:xx
inet 地址:x.x.x.x 广播:x.x.x.x 掩码:x.x.x.x
UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 跃点数:1

注: (more…)

[魔都日记2]关于目前正在做的和将要做的

Wednesday, November 2nd, 2011

来到魔都的第二周。一切都比较顺利,我们部门主要做大中型交换机的研发,机体板子结构比较复杂,模块区分非常明晰,产品已经发售使用。接下来需要做的就是将板子上跑的vxworks替换成目前比较流行的Linux,说白了就是系统移植方面的东西。最近这两天都是做一些准备工作,需要对LINUX底层的API接口,设备驱动,网络协议,以及VxWORKS与底层硬件交互的驱动进行深入了解。再有就是接触宏观的一些东西,比如板子内部的信息流通,整体的架构,收发报文的流程,抓包及包内数据的具体分析。板子主要有两块NT和LT板,即通常所说的网卡与线卡。整个MDU拿起来很沉,能看到的模块除了上述两个,还有风扇模块,电源模块及trace&debug接口,adsl&vdsl接口等。 (more…)

django上传图片问题

Monday, May 30th, 2011

最近这个在admin上传图片的东西搞的我非常郁闷,求教了很多人,查了很多资料。知道问题出在setting.py中的路径,但是怎么着改都有问题,今晚实在没辙就完全推倒重做,又仔细的分析了一遍media_root,media_url,static_root,static_url,admin_media_prefix。参考帮助文档,终于搞定,mark一下。 (more…)

django学习记录1

Sunday, May 29th, 2011

Django报错UnicodeEncodeError: ‘ascii’ codec can’t encode characters 之解决方法!
how-to:
编码问题。Change the __str__ methods on your models to be __unicode__ methods. Just change the name. Usually, nothing else will be needed.   (more…)

从无头单链表中删除节点

Saturday, May 14th, 2011

题目:
假设有一个没有头指针的单链表。一个指针指向此单链表中间的一个节点(非第一个节点, 也非最后一个节点)。请将该节点从单链表中删除。
解答:
典型的“狸猫换太子”, 若要删除该节点,正常情况下,应该要知道该节点的前面节点的指针,但是由于单链表中没有头结点,所以无法追溯到该节点前面的那个节点,因此,这里采用了“移花接木”的方法。设该节点为B,下一个节点为C。那么,首先将B节点的内容替换为C节点的内容,然后,将C节点删除,这样就达到了我们的目的。代码如下: (more…)

define与typedef的区别

Thursday, May 12th, 2011

简单来讲:#define只是简单的进行了替换,而typedef则是为类型取了个”别名”

1) #define是预处理指令,在编译预处理时进行简单的替换,不作正确性检查,不关含义是否正确照样带入,只有在编译已被展开的源程序时才会发现可能的错误并报错。例如:
#define PI 3.1415926
程序中的:area=PI*r*r 会替换为3.1415926*r*r
如果你把#define语句中的数字9 写成字母g 预处理也照样带入。
(more…)