Febird's Sky

Search & Research & Find
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

KStar 校园网锐捷认证GUI版

Posted on 2008-09-03 15:30  febird  阅读(1878)  评论(4)    收藏  举报

    学习编程技术,还是一边学习一边实践来感觉更容易,近来学习QT,发现积极性不是很大,后来索性就想做一个什么实际的东西出来把,细想了一下,现在教育网很多用户都用锐捷认证,官方的版本限制太多,没有考虑我们广大用户的利益,所以Windows下面有一Meto锐捷的东西,Linux下面也有相应的官方认证软件supplicant,但是这个不好用,所以后来就有人写了mystar。但是一直没有一个GUI的,虽然使用Linux的高手云集,命令行可以搞定一切,貌似没有人准备为他写一个GUI,毕竟Linux的推广于普及最终还是要让普通的来百姓能够使用,而他们迫切的需要图形界面的支持。

我一想,这个还不错,既学习Qt,巩固C++,又可以学习网络编程,当然少不了特定平台的系统调用,最后还可将学习Qt在BSD,windows,嵌入式等上面的移植,那个想法是相当的不错阿.说感就干。


首先分析Mystar的源代码,核心应该是参考Meto的,都是使用了libpcap库来实现网络抓包。libnet实现发帧。大概花了一上午的时间,将mystar封装成类,然后开始学习QT,其实学习QT也挺快的,首先了解程序框架,然后了解各种文件用法,编译连接过程,然后根据doc/html下面的帮助文档就可以了,不懂的地方Google一定能找到答案。

编写这个Kstar(名字瞎起的),用了RSA的MD5函数,读取配置文件还使用了专用的库CIniFile,为了在X11中使用系统托盘,使用了第三方的TrayIcon类(Qt3中没有TrayIcon的相关类,哎),最后弄得这个可执行文件足有1M大小,真是惭愧.....尽管libcap使用的是共享...

下面是ldd的结果

[root@localhost bin]# ldd kstar
        linux-gate.so.1 =>  (0x00110000)
        libpcap.so.0.9 => /usr/lib/libpcap.so.0.9 (0x00d2e000)
        libqt-mt.so.3 => /usr/lib/qt-3.3/lib/libqt-mt.so.3 (0x02000000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0x00d5d000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0x00111000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x003f7000)
        libm.so.6 => /lib/libm.so.6 (0x00ccc000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x002b2000)
        libc.so.6 => /lib/libc.so.6 (0x00b71000)
        libmng.so.1 => /usr/lib/libmng.so.1 (0x007b7000)
        libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0x003d3000)
        libpng12.so.0 => /usr/lib/libpng12.so.0 (0x00253000)
        libz.so.1 => /lib/libz.so.1 (0x00d19000)
        libXi.so.6 => /usr/lib/libXi.so.6 (0x0027b000)
        libXrender.so.1 => /usr/lib/libXrender.so.1 (0x00286000)
        libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0x0029d000)
        libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x00291000)
        libXinerama.so.1 => /usr/lib/libXinerama.so.1 (0x002a6000)
        libXft.so.2 => /usr/lib/libXft.so.2 (0x007a2000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x00d6f000)
        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x00222000)
        libSM.so.6 => /usr/lib/libSM.so.6 (0x003ac000)
        libICE.so.6 => /usr/lib/libICE.so.6 (0x003b7000)
        libdl.so.2 => /lib/libdl.so.2 (0x00cf7000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00cfe000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0x0020d000)
        libxcb-xlib.so.0 => /usr/lib/libxcb-xlib.so.0 (0x00210000)
        libxcb.so.1 => /usr/lib/libxcb.so.1 (0x002be000)
        /lib/ld-linux.so.2 (0x00b52000)
        liblcms.so.1 => /usr/lib/liblcms.so.1 (0x0076a000)
        libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x002ab000)
        libexpat.so.1 => /lib/libexpat.so.1 (0x002da000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x00212000)

整个工程使用Kdevelop开发,用Qmake处理pro文件,源码如下:
     kstar-src-1.0.tar.gz  

在 Fedoro Core 8下面的编译的二进制包: 

     kstar-bin-1.0.tar.gz  


使用截图说明:

 

KStar1
KStar1
KStar1