亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2049 | 回復(fù): 2
打印 上一主題 下一主題

用perl/Tk簡單寫了一個在線PC檢測工具,一處故障求斧正。 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-12-11 22:13 |只看該作者 |倒序瀏覽
本帖最后由 mouse.rice 于 2012-12-11 22:20 編輯
  1. use strict;
  2. use Tk;
  3. use Tk::StrfClock;
  4. use Sys::Hostname;
  5. use Net::Ping;
  6. use Socket;

  7. use encoding("gbk");

  8. my $subnet;
  9. my $sub;

  10. #定義主窗口
  11. my $mw = MainWindow->new;
  12. $mw->geometry("300x420");
  13. $mw->title("隨便寫點啥");

  14. #定義按鈕及菜單
  15. my $main_menu = $mw->Menu();
  16. $mw->configure(-menu => $main_menu);

  17. my $main_frame = $mw->Frame()
  18.                     ->pack(-side => 'top', -fill => 'x');

  19. my $file_menu = $main_menu->cascade(-label=>"文件", -tearoff=>0);
  20. $file_menu->command(-label=>"退出", -command=>sub{exit});


  21. my $tool_menu = $main_menu->cascade(-label=>"工具", -tearoff=>0);

  22. $tool_menu->command(-label=>"自定義掃描網(wǎng)段", -command=>\&fill_subnet);

  23. my $look_menu = $main_menu->cascade(-label=>"查看", -tearoff=>0);
  24. $look_menu->command(-label=>"日志", -command=>\&log);


  25. my $help_menu = $main_menu->cascade(-label=>"幫助", -tearoff=>0);
  26. $help_menu->command(-label=>"使用說明", -command=>\&readme);

  27. #定義第二個frame,即當(dāng)前時間顯示欄
  28. my $frame_2 = $main_frame->Frame()
  29.                            ->pack(-side => 'right', -fill => 'x');

  30. $frame_2->StrfClock(-font=>"fixed 9 bold", -foreground=>'#128110')->pack();

  31. #定義滾動框
  32. my $frame_3 = $mw->Frame()
  33.    ->pack(-side => 'top', -ipady=>'0.1', -fill => 'x');

  34. my $t = $frame_3->Scrolled("Text",
  35.                          -scrollbars => 'oe',  
  36.                               -width  => 40,
  37.                              -height  => 22,
  38.                                -wrap  => 'none',
  39.                     )
  40.                 ->pack(-side => 'top', -expand => 1);


  41. $mw->Frame(-background => "blue")
  42.       ->pack(-side => 'top', -ipady=>'0.5', -fill => 'x');

  43. #定義最下面一個frame,版權(quán)說明
  44. $mw->Label(-text => "推廣開源  Perl/Tk開發(fā)\n-------------------------\n聯(lián)系人:XXX\tQQ: 11111111", -font=>"fixed 9")
  45.    ->pack(-side => "bottom");

  46. MainLoop;

  47. sub fill_subnet
  48.         {
  49.                 use Tk::DialogBox;
  50.                 use Tk::LabEntry;
  51.                 my $db = $mw->DialogBox(-title => "填寫并掃描網(wǎng)段", -buttons => ["確定掃描", "放棄重置"], -command => \&scan_subnet);
  52.                 $db->add('LabEntry', -textvariable => \$subnet, -width => 20, -background => 'white', -foreground => 'blue',
  53.                                          -label => "網(wǎng)段", -labelPack => [-side => 'left'])
  54.                    ->pack;
  55.                 my $answer = $db->Show( );
  56.         }

  57. sub scan_subnet
  58.         {

  59.        my @host;
  60.            my @subnet = (split "," , $subnet);
  61.            foreach my $sub (@subnet) {
  62.                for my $ip_range (1..3) {#測試而已,暫且數(shù)據(jù)寫小一點,貌似寫1 .. 254卡死了...
  63.                        my $ips = "192.168.$sub.$ip_range";
  64.                        push @host, $ips;
  65.                }
  66.        }

  67.        foreach my $host (@host){
  68.            my $p = Net::Ping->new("icmp");

  69.            if ($p->ping($host,0.1)){
  70.                
  71.                my $hostname = gethostbyaddr(inet_aton($host),AF_INET);
  72.                $hostname ||= '?';#如未成功獲取,則設(shè)置主機名為?
  73.                $t->repeat(1000, sub {$t->insert('end', "$host => $hostname is On_line\n")});
  74.             }else{     
  75.                $t->repeat(1000, sub {$t->insert('end', "$host is offline\n")});
  76.            }
  77.            $p->close();
  78.        }
  79.     }
復(fù)制代碼
隨手寫了一個TK小工具,用于檢測內(nèi)網(wǎng)在線PC(其他功能還沒有添加進去)。

1、用法:點“工具”-“自定義掃描網(wǎng)段”,填寫網(wǎng)段號(實際公司內(nèi)部網(wǎng)段全部是192.168.X.X,比如我要掃描192.168.1.x和192.168.2.x兩個網(wǎng)段PC,則彈出框網(wǎng)段填寫1,2 用逗號隔開,程序中是這么設(shè)定的),F(xiàn)在運行中出現(xiàn)一個問題:sub scan_subnet{..}這個子函數(shù)故障,其中foreach my $host(@host)成了無限循環(huán),停不下來(滾動框中不停循環(huán)出現(xiàn)insert的數(shù)據(jù))。不知道哪里出了問題,請各位幫斧正。看了一下午,頭都暈了,謝謝!

2、另外,還想實現(xiàn)一個功能:類似msdos下ping 192.168.1.1 -t 實時顯示數(shù)據(jù),滾動條隨數(shù)據(jù)增加而變化的同時,光標總是顯示在出現(xiàn)的最后一個字符。而我上面的程序需要手動拉滾動框才能顯示最后一行數(shù)據(jù)。

論壇徽章:
0
2 [報告]
發(fā)表于 2012-12-12 17:21 |只看該作者
不頂要沉了,兄弟姐們們賜教啊。感謝!

論壇徽章:
0
3 [報告]
發(fā)表于 2012-12-14 13:35 |只看該作者
有解惑的兄弟沒
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP