|
|
我和同事都是用南京联创上网,我对编程一窍不通,同事参考了藕节兄的这个帖子:
http://www.linuxsir.cn/forum.php ... hlight=%C1%AA%B4%B4
然后自己编了一个脚本,取名keep,内容如下:
[PHP]
#!/usr/bin/perl
use Socket; #import Socket
$host = '218.90.189.1'; #server ip
$port = 8002 ; #server port
`dhclient -r`;
`dhclient ` ;
$MYIP = `ifconfig eth0|grep inet|sed 's/^ *//'|sed 's/ /:/g'|cut -f3 -d:`;
$macaddr = "x00x00x00x00x00x00";
$msg = inet_aton($MYIP) . $macaddr;
$HDMAC = `ifconfig eth0|grep HWaddr|sed 's/^ *//'|sed 's/://g'|sed 's/ /:/g'|cut -f11 -d:`; #get local mac address
print "*************************************************************
you should make sure that the 'macaddr' is the correct one.
and maybe the server's ip mast be modified on your condition,
then this perl send keep_alive package at a period of 30 seconds.\n";
print "the server's ip is $host\nyour mac address is $HDMAC";
print "your ip is $MYIP";
$time = "started at ";
$time .= `date +%H:%M:%S`;
print "$time*************************************************************\n\n";
$packhost=inet_aton($host); #transfer local host
$address=sockaddr_in($port,$packhost);
socket(CLIENT,AF_INET,SOCK_DGRAM,17); #bulid up a link
binmode CLIENT; #binmode socket
while (1) {
send(CLIENT,$msg,0,$address); #send keep alive package
$time = `date +%H:%M:%S`;
chop $time;
$time .= " send ok! you can stop it by Ctrl+C";
print $time;
sleep 30;
print "bbbbbbbbbbbbbbbbbbbbbbbb";
print "bbbbbbbbbbbbbbbbbbbbbbbb";
}
[/PHP]
他给我发来的email里面,使用方法是先将自己的MAC地址填入,然后执行#./keep 或是#python keep,可是我却得到了以下错误信息:
[PHP]
[root@localhost root]# python keep
File "keep", line 2
use Socket ; #import Socket
^
SyntaxError: invalid syntax
[root@localhost root]#
[/PHP]
同事的系统是RH9.0,我的是MDK10.1,我在Mandrake版问了,有兄弟说这个脚本是perl文件,不能用python执行,不知是否如此?
如果确实如此,该如何执行?
还请有经验的兄弟指点,谢谢。 |
|