FreeBSD中读取Ethernet Address的一种可行方法

#include <net/if.h>#include <ifaddrs.h>#include <net/if_dl.h>#include <net/ethernet.h> int main(){    struct ifaddrs *list;    if(getifaddrs(&list) < 0)    {        perror("getifaddrs");        return;    }            struct ifaddrs *cur;            for(cur = list; cur != NULL; cur = cur->ifa_next)    {        if(cur->ifa_addr->sa_family != AF_LINK)            continue;        char *name = cur->ifa_name;        printf(name);printf("\n");        char *addr;        struct sockaddr_dl *sdl;   …

Continue reading ‘FreeBSD中读取Ethernet Address的一种可行方法’ »

Reading "TCP/IP Illustrated Vol 2"

当初想装FreeBSD就是因为看了这套书的缘故(BSD网络实现和FreeBSD还分不清楚)。但是安装不成功,最后把Vol1,Vol3都读完了也没有装好。后来装好了FreeBSD,又没有时间看。现在终于有了些空闲,能够慢慢研究这套书了。 Vol2讲的是实现,也就是把源代码和原理结合起来讲。我一边看一边翻FreeBSD的源代码,发现基本的东西没有变(书上的第一个样例打上去还能编译,改了一下地址还能用~),但是代码量大了很多(那时据说网络部分只有15000行左右~),有些东西删掉了,更多的东西加了进去。 看看源代码的确对理解工作原理有很大的益处…… 但必须要这样的一本书来进行适当的引导,因为…… 代码的数量太多了!

An ugly way to get MAC Address in FreeBSD

char ethaddr[6];    struct ifaddrs *list;    if(getifaddrs(&list) < 0)    {        perror("getifaddrs");    }            struct ifaddrs *cur;            for(cur = list; cur != NULL; cur = cur->ifa_next)    {        if(cur->ifa_addr->sa_family != AF_LINK)            continue;        if(cur->ifa_name!=if_name)            continue;        int i;        for (i=9;i<15;i++)        ethaddr[i-9]=cur->ifa_addr->sa_data[i];    }            freeifaddrs(list); I’ll refer to some books …

Continue reading ‘An ugly way to get MAC Address in FreeBSD’ »

U 盘坏了

周五在学校还好好的,周六带出去,就不能用了。Windows报告Unknown Device,FreeBSD报告SET_ADDR_? FAILED, port disabled。U 盘的灯也不亮了,看来是硬件问题…… 要买新的了…… Aigo的优盘也没什么好的么…… 还特别贵…… 经历了两次丢失数据之后,这次终于完了…… 买个U盘还是MP3还是移动硬盘还是MP4呢?

FreeBSD 的 locale

原来我设置locale的方法是setenv LC_ALL zh_CN.eucCN,但是这样陶喆的“喆”显示不出来,假如用eucCN挂硬盘(FAT32),连读出来都有问题。于是改为setenv LC_ALL zh_CN.GB18030,这下基本上什么东西都和我说“locale 不支持”,比如libc说,Xlib说->Qt说,Gnome说(其实Xlib是支持的,只是没装好…… 后来删了重装就好了)。搞不清楚了,就跑到论坛上去问,结果被别人强烈BS,说使用LC_ALL违反设计理念等等…… 按照那位仁兄的建议,改成setenv LANG zh_CN.GB18030+setenv LC_CTYPE zh_CN.GBK之后,陶喆的问题基本上好了,但是SCIM还是叫不出来,只好最后改为setenv LANG zh_CN.GB18030+setenv LC_CTYPE zh_CN.GBK,这样似乎什么问题也没有了。 但是这样又有一个疑问:既然有zh_CN.GBK,zh_CN.GB18030有什么用?…… PS:挂硬盘自然也要用zh_CN.GBK才行…… 不过似乎zh_CN.GB18030也没什么问题   Old Blog Link: http://computer.mblogger.cn/henryhu/posts/60958.aspx