gpt4 book ai didi

linux - 我的脚本有什么问题,请告诉我

转载 作者:太空宇宙 更新时间:2023-11-04 06:06:15 25 4
gpt4 key购买 nike

我需要在我的路由器页面中输入该脚本并找到代码并与之前记录的IP信息进行比较,如果没有改变,则停止脚本。

我运行这个脚本 - $ perl ~/test.pl

没有错误,但未创建文件 my_ip.txt。

在原始脚本中必须通过主机 example.dyndns.org 检查我的 IP,但我的 IP 是灰色的。

所以我需要通过路由器来确定

#!/usr/bin/perl

use LWP::UserAgent;

my $routeraddress = `addr admin:Tavolzhansky@192.168.1.1/RST_conn_status.htm`;
if ($routeraddress =~ /var info_get_wanip="((\d+\.){3}(\d+))"/) {

my $ip = "$1.$2.$3.$4";

#Добавлено:
open (FILE,"my_ip.txt");
my @lines = <FILE>;
$old_ip = $lines[0]; #Считываем IP из файла
$old_ip =~ s/^\s+|\s+$//g; #trim
close(FILE);
if ($old_ip eq $ip) {
die "IP not changed"; # Выходим из скрипта, если IP не изменился
}
open (FILE,">my_ip.txt");
print FILE $ip; # Записываем в файл новый IP
close(FILE);
...... (this code is OK)
}

不要带结束代码,因为连接路由器的问题

最佳答案

$ perl -cw -e 'print `addr admin:foo@192.168.1.1/bar`'
Possible unintended interpolation of @192 in string at -e line 1.
-e syntax OK

它不起作用,因为 @192 被插值为数组,并且您正在运行命令 addr admin:Tavolzhansky.168.1.1/RST_conn_status.htm 而不是您想要的命令。

如果您使用警告,如果您使用调试器单步执行代码,或者按照 Andy 的建议,如果您检查返回值,那么这将非常容易发现和修复。

<小时/>

要使 @192 不被插值,请转义 @:

my $routeraddress = `addr admin:Tavolzhansky\@192.168.1.1/RST_conn_status.htm`;

关于linux - 我的脚本有什么问题,请告诉我,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34095054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com