GUI版h3c-ouc

0 views
Skip to first unread message

huangjiakun1991

unread,
Oct 30, 2011, 3:11:40 AM10/30/11
to h3c-ouc
 源码及可执行文件在附件中,里面的c语言函数部分和cli版的稍有不同,而且不能和cli版合成一个,经测试只能这样。稍后我写Makefile并上传到google code,以及bbs。



网易公开课推出哈佛最受欢迎《幸福》课程,帮您修满幸福学分!
gh3c-1.0.0.tar.gz

郑海永

unread,
Oct 30, 2011, 10:50:06 PM10/30/11
to h3c...@googlegroups.com
不能合成一个的主要问题在哪里?你们又做了什么样的测试而得出这样的结论呢?

2011/10/30 huangjiakun1991 <huangji...@126.com>

 源码及可执行文件在附件中,里面的c语言函数部分和cli版的稍有不同,而且不能和cli版合成一个,经测试只能这样。稍后我写Makefile并上传到google code,以及bbs。



网易公开课推出哈佛最受欢迎《幸福》课程,帮您修满幸福学分!



--
郑海永
+--------------------------------------------------+
| Haiyong Zheng                  
| Department of Electronic Engineering,
| College of Information Science and Engineering,                    
| Ocean University of China.       
+--------------------------------------------------+

huangjiakun1991

unread,
Oct 31, 2011, 9:38:42 AM10/31/11
to h3c...@googlegroups.com
因为cli版那个认证成功以后就要进入保持在线的死循环,不会有返回值,所以python使用返回值无法判断认证成功,只能通过标准输出的信息来判断。cli版认证成功以后会输出“认证成功”,而python如果验证这个的话会出现编码问题,所以只能令加一条“success“,通过这个来判断认证成功,然后执行后续代码。

Flily Hsu

unread,
Oct 31, 2011, 10:22:52 AM10/31/11
to h3c...@googlegroups.com
可以开启一个线程或者进程,专门运行维持连接、执行验证第四第五步的功能,然后这个函数向上返回值。
或者开一个管道,来跟shell程序通信。

2011/10/31 huangjiakun1991 <huangji...@126.com>

郑海永

unread,
Oct 31, 2011, 10:48:20 AM10/31/11
to h3c...@googlegroups.com
恩,可以试试Filly的方案,另外,编码问题貌似也是肯定可以解决吧。

2011/10/31 Flily Hsu <klose...@gmail.com>

郑海永

unread,
Oct 31, 2011, 11:34:43 AM10/31/11
to h3c...@googlegroups.com

不好意思写错名字了,应该是Flily。

On Oct 31, 2011 10:48 PM, "郑海永" <zhengh...@gmail.com> wrote:

恩,可以试试Filly的方案,另外,编码问题貌似也是肯定可以解决吧。



2011/10/31 Flily Hsu <klose...@gmail.com>
>
> 可以开启一个线程或者进程,专门运行维持连接、执行验证第四第五步的功能,然后这个函数向上返回值。

>...

Zheng Gonng

unread,
Nov 1, 2011, 9:04:11 PM11/1/11
to h3c...@googlegroups.com
       我在fedora15下编译安装GUI版的成功了,但是点击图标后工具栏上显示等待,但是始终看不到界面,最后貌似自动退出了。

郑海永

unread,
Nov 2, 2011, 2:06:41 AM11/2/11
to h3c...@googlegroups.com
崔禄吉和黄家坤麻烦看看这个问题怎么回事?

2011/11/2 Zheng Gonng <sud...@gmail.com>

huangjiakun1991

unread,
Nov 2, 2011, 4:39:55 AM11/2/11
to h3c...@googlegroups.com
点击图标后窗体就隐藏了,再点击图标窗体就会出现的。
认证成功的话,图标就会变为绿色的联网状态,否则是带红X的断网状态。
fedora下没有进行测试,不知以上是不是你说的问题,能不能截图详细描述一下?

huangjiakun1991

unread,
Nov 2, 2011, 5:04:54 AM11/2/11
to h3c...@googlegroups.com
cli版中第四、五步已经使用子进程执行在线验证的死循环,GUI中调用此外部程序,方法就是登录按钮单击后开启一个子线程,调用外部程序(没有使用shell调用,不过理论上应该是一样的),然后子线程与外部程序通讯,然后再送回Python GUI框架。python调用cli的外部程序,是把cli中父进程和死循环的子进程作为一个进程处理的,也就是说,只有循环未结束,就不会有返回值,就算父进程有exit(xx)或者return xx。所以只能靠输出的消息判断认证成功。

huangjiakun1991

unread,
Nov 2, 2011, 5:07:01 AM11/2/11
to h3c...@googlegroups.com
编码问题比较麻烦,当时只想到一个简单的方法。

Zheng Gonng

unread,
Nov 2, 2011, 5:18:44 AM11/2/11
to h3c...@googlegroups.com
Screenshot.png
点击图标后会出现这个。但是始终出现不了窗体,过一段时间连图标也消失了,任务管理器里面似乎也找不到相应的进程。


2011/11/2 huangjiakun1991 <huangji...@126.com>
点击图标后窗体就隐藏了,再点击图标窗体就会出现的。
认证成功的话,图标就会变为绿色的联网状态,否则是带红X的断网状态。
fedora下没有进行测试,不知以上是不是你说的问题,能不能截图详细描述一下?


在 2011-11-02 09:04:11,"Zheng Gonng" <sud...@gmail.com> 写道:

       我在fedora15下编译安装GUI版的成功了,但是点击图标后工具栏上显示等待,但是始终看不到界面,最后貌似自动退出了。




Screenshot.png

崔禄吉

unread,
Nov 2, 2011, 5:35:47 AM11/2/11
to h3c...@googlegroups.com
恩。

huangjiakun1991

unread,
Nov 2, 2011, 6:11:46 AM11/2/11
to h3c...@googlegroups.com
对fedora不了解,实在是不知道它和ubuntu有什么区别,你可以在终端中运行
/usr/share/gh3c/中的g-h3c_ouc.py,看看有什么提示。

郑海永

unread,
Nov 2, 2011, 10:13:11 AM11/2/11
to h3c...@googlegroups.com
编码问题比较麻烦是什么意思?无法进行中文判断?

2011/11/2 huangjiakun1991 <huangji...@126.com>

huangjiakun1991

unread,
Nov 2, 2011, 10:19:29 AM11/2/11
to h3c...@googlegroups.com
当时崔禄吉电脑上中文是正常的,发给我以后就乱码了,我们都加了coding:utf-8,没找到什么原因。

 

郑海永

unread,
Nov 2, 2011, 10:22:05 AM11/2/11
to h3c...@googlegroups.com
系统编码都一样吗?

2011/11/2 huangjiakun1991 <huangji...@126.com>

huangjiakun1991

unread,
Nov 2, 2011, 10:29:54 AM11/2/11
to h3c...@googlegroups.com
python默认的都是utf-8,用eclipse打开就能正常显示了,我怀疑是编辑器的原因,可以找时间再试一试


郑海永

unread,
Nov 2, 2011, 10:35:59 AM11/2/11
to h3c...@googlegroups.com
关于python程序的编码有好的习惯都是专门设置的吧,手册上专门有一节介绍的。
另外你说用Eclipse打开就能正常显是什么意思?难道是py文件的编码问题?你这个编码到底是什么的编码啊。

2011/11/2 huangjiakun1991 <huangji...@126.com>

Zheng Gonng

unread,
Nov 3, 2011, 12:07:03 AM11/3/11
to h3c...@googlegroups.com
./g-h3c_ouc.py: line 4: import: command not found
./g-h3c_ouc.py: line 5: import: command not found
./g-h3c_ouc.py: line 6: import: command not found
./g-h3c_ouc.py: line 7: import: command not found
./g-h3c_ouc.py: line 9: devicename: command not found
./g-h3c_ouc.py: line 10: statusbar: command not found
Object "=" is unknown, try "tc help".
./g-h3c_ouc.py: line 14: syntax error near unexpected token `('
./g-h3c_ouc.py: line 14: `class MyStatusBar(wx.StatusBar):'


看不懂

2011/11/2 huangjiakun1991 <huangji...@126.com>

huangjiakun1991

unread,
Nov 3, 2011, 1:51:12 AM11/3/11
to h3c...@googlegroups.com
你是怎么运行的这个py文件?你的命令是python g-h3c_ouc.py还是./g-h3c_ouc.py?

huangjiakun1991

unread,
Nov 3, 2011, 1:53:09 AM11/3/11
to h3c...@googlegroups.com
可能是编辑器解码的时候不对吧,我也不知道具体什么原因。

Zheng Gonng

unread,
Nov 3, 2011, 1:54:06 AM11/3/11
to h3c...@googlegroups.com
额,直接输入:./g-h3c_ouc.py?
没学过python。 

2011/11/3 huangjiakun1991 <huangji...@126.com>

huangjiakun1991

unread,
Nov 3, 2011, 1:54:46 AM11/3/11
to h3c...@googlegroups.com
你试试输入python g-h3c_ouc.py

Zheng Gonng

unread,
Nov 3, 2011, 1:58:37 AM11/3/11
to h3c...@googlegroups.com
恩,有点想转移到ubuntu了。最近fedora一直在崩溃,调教不好。

2011/11/3 huangjiakun1991 <huangji...@126.com>

Zheng Gonng

unread,
Nov 3, 2011, 10:41:46 PM11/3/11
to h3c...@googlegroups.com
今天试了一下cli版的,发现了一个问题:fedora从15开始已经更换了网卡命名方式。但是你们客户端一直是基于ubuntu的,所以好像没有考虑这个问题。

2011/11/3 Zheng Gonng <sud...@gmail.com>

郑海永

unread,
Nov 3, 2011, 11:02:21 PM11/3/11
to h3c...@googlegroups.com
恩,看来是这个问题,这样你可以自己修改网卡名字吧,有个参数-n devicename试试。

2011/11/4 Zheng Gonng <sud...@gmail.com>

Zheng Gonng

unread,
Nov 3, 2011, 11:58:22 PM11/3/11
to h3c...@googlegroups.com
恩,试了一下成功了。觉得这个客户端还不错。反应很迅速。以前用的xclient客户端貌似兼容性问题,一退出就会造成系统重启,这个好像还没出现。feodra的新版网卡命名很蛋疼,我的网卡居然叫p2p1,开始还以为是em1,查了半天没查到。

2011/11/4 郑海永 <zhengh...@gmail.com>

郑海永

unread,
Nov 4, 2011, 1:34:16 AM11/4/11
to h3c...@googlegroups.com
好的,呵呵,那么GUI里面好像也可以设置的吧?

2011/11/4 Zheng Gonng <sud...@gmail.com>

郑海永

unread,
Nov 4, 2011, 3:35:17 AM11/4/11
to h3c...@googlegroups.com
恩,现在GUI里面还没有做好,目前还不是从系统读出来的。
Fedora新版下面ifconfig可以返回网卡的信息不?

2011/11/4 郑海永 <zhengh...@gmail.com>

Flily Hsu

unread,
Nov 4, 2011, 4:05:12 AM11/4/11
to h3c...@googlegroups.com
让用户输入设备名字是一种很不好的做法。如果到了Windows下面,pcap_if_t的名字很长,会难以输入。还是让用户输入一个序号比较好,另外提供一个参数是专门列网络设备名称、描述和序号的对应关系的。

2011/11/4 郑海永 <zhengh...@gmail.com>

huangjiakun1991

unread,
Nov 4, 2011, 4:20:16 AM11/4/11
to h3c...@googlegroups.com
嗯,CLI版的只能让用户输入。GUI版的话,可以调用ifconfig获得网卡名称,然后给框架中的下拉菜单赋值,如果Linux发行版中都有ifconfig的话就简单了。

Flily Hsu

unread,
Nov 4, 2011, 4:28:07 AM11/4/11
to h3c...@googlegroups.com
cli版让用户输入也可以不输入名称,而是输入一个序号。
另外,Linux发行版只要装了net-tools就有ifconfig,几个主要的发行版本里面都是默认安装的。

2011/11/4 huangjiakun1991 <huangji...@126.com>

郑海永

unread,
Nov 4, 2011, 6:01:00 AM11/4/11
to h3c...@googlegroups.com

序号更不容易明白吧,用户如何知道你所列的序号哪个有用?

On Nov 4, 2011 4:28 PM, "Flily Hsu" <klose...@gmail.com> wrote:

cli版让用户输入也可以不输入名称,而是输入一个序号。

另外,Linux发行版只要装了net-tools就有ifconfig,几个主要的发行版本里面都是默认安装的。



2011/11/4 huangjiakun1991 <huangji...@126.com>
>
> 嗯,CLI版的只能让用户输入。GUI版的话,可以调用ifconfig获得网卡名称,然...

Flily Hsu

unread,
Nov 4, 2011, 11:28:07 AM11/4/11
to h3c...@googlegroups.com
必然有说明啊,本身使用命令行参数的时候,不看说明谁也不知道该用什么。

2011/11/4 郑海永 <zhengh...@gmail.com>

郑海永

unread,
Nov 4, 2011, 12:03:48 PM11/4/11
to h3c...@googlegroups.com

那不如直接显示网卡名字好了,弄个编号貌似很多此一举。

On Nov 4, 2011 11:28 PM, "Flily Hsu" <klose...@gmail.com> wrote:

必然有说明啊,本身使用命令行参数的时候,不看说明谁也不知道该用什么。



2011/11/4 郑海永 <zhengh...@gmail.com>
>
> 序号更不容易明白吧,用户如何知道你所列的序号哪个有用?
>>

>> On Nov 4, 2011 4:28 P...

huangjiakun1991

unread,
Nov 4, 2011, 10:54:18 PM11/4/11
to h3c...@googlegroups.com
CLI版登录有两种方式:一种是-u ,-p,-n这三个选项全部输入,这种方式只能让他手动输入网卡名称了;另一种是三个选项输入不全,比如只输入-u,这样就是按照提示输入了,等到提示输入网卡名称时,可以列出来让人选择。另外,好像网卡名称好像只有Fedora 15里面改了,其他的貌似都是eth这种。

郑海永

unread,
Nov 4, 2011, 10:57:28 PM11/4/11
to h3c...@googlegroups.com
恩,GUI中最好还是通过ifconfig读出来吧。

Zheng Gonng

unread,
Nov 4, 2011, 10:57:00 PM11/4/11
to h3c...@googlegroups.com
      恩,只有fedora改了。不过对于linux主要用户不存在这方面的困难。主要困难在新用户。对于老用户来说现在的cli版已经完全能解决问题了。

2011/11/5 huangjiakun1991 <huangji...@126.com>

Flily Hsu

unread,
Nov 5, 2011, 11:46:58 AM11/5/11
to h3c...@googlegroups.com
从使用的方便程度来说,输入数字比输入字符串要容易得多;
尽管eth0是一个很短的名字,在linux下输入名字也不会有太大的问题。但是如果在windows下,网卡的名字会是一个很长的名字,输入名称会变得非常困难。

2011/11/5 郑海永 <zhengh...@gmail.com>

郑海永

unread,
Nov 5, 2011, 12:15:37 PM11/5/11
to h3c...@googlegroups.com

不需要输入,列出来用户自己选择。

On Nov 5, 2011 11:47 PM, "Flily Hsu" <klose...@gmail.com> wrote:

从使用的方便程度来说,输入数字比输入字符串要容易得多;

尽管eth0是一个很短的名字,在linux下输入名字也不会有太大的问题。但是如果在windows下,网卡的名字会是一个很长的名字,输入名称会变得非常困难。



2011/11/5 郑海永 <zhengh...@gmail.com>
>
> 那不如直接显示网卡名字好了,弄个编号貌似很多此一举。
>>

>> On Nov 4, 2011 11:28 P...

SouthWolf

unread,
Nov 9, 2011, 8:24:44 PM11/9/11
to h3c-ouc
获取MAC地址跟获取网卡名称 比较ugly的处理方法是直接抓ifconfig

ifconfig | grep Ethernet | awk 'NR==1{print $1}'

获取第一块网卡名

ifconfig | grep Ethernet | awk 'NR==1{print $5}'

获取第一块网卡MAC

但是在代码中直接使用shell感觉很不好

既然用到了SIOCGIFHWADDR, 虽然没试过但猜想肯定可以从程序中读出MAC地址吧...

郑海永

unread,
Nov 9, 2011, 8:30:37 PM11/9/11
to h3c...@googlegroups.com
mac下抓网卡物理地址的确费了一点事,但最后还是实现了,已经在你另外一个邮件中回复了。

2011/11/10 SouthWolf <wp.sou...@gmail.com>

郑海永

unread,
Nov 9, 2011, 8:31:30 PM11/9/11
to h3c...@googlegroups.com
获取网卡名称应该还需要再研究一下,既然ifconfig可以实现,c肯定也是可以的,只是麻烦一些就是了,毕竟ifconfig也是用c写的。

2011/11/10 郑海永 <zhengh...@gmail.com>
Reply all
Reply to author
Forward
0 new messages