perl中,如何实现 telnet -l -f功能?

perl中,如何实现 telnet -l -f功能?

通常在命令行下使用telnet时,可以指定参数。telnet   -l   -f等等。
telnet   [-a][-e   escape   char][-f   log   file][-l   user][-t   term][host   [port]]
  -a             企图自动登录。除了用当前已登陆的用户名以外,与   -l   选项相同。
  -e             跳过字符来进入   telnet   客户提示。
  -f             客户端登录的文件名
  -l             指定远程系统上登录用的用户名称。
                  要求远程系统支持   TELNET   ENVIRON   选项。
  -t             指定终端类型。
                  支持的终端类型仅是:   vt100,   vt52,   ansi   和   vtnt。
  host         指定要连接的远程计算机的主机名或   IP   地址。
  port         指定端口号或服务名。

想在perl中实现   telnet   -l   -f这两个功能,不知道net:telnet是否支持,该如何实现?
谢谢各位。
看不懂你的问题......你是说在输入的时候指定-l -f吗?

Net::Telnet的操作方式跟telnet有很多不同....

你应该先去看看document...再来问吧...
谢谢。文档我已经翻过了,没找到相关信息。所以才来问。
是这这样的。在命令行下,我要执行telnet  -l xxx 192.168.1.1 .
我想用perl编个脚本来实现上述功能。
那很简单呀..
在.pl里面..去读取 @ARGV内容..找到 -l -f 的後面的内容..
然後用NET::Telnet在登录的过程中..帮你输入应该输入的内容..
等於simulate telnet -l -f的动作....
-l user
When connecting to a remote system that understands the ENVIRON option, then user will be sent to the remote system as the value for the ENVIRON variable USER.

这个是-l的含义,就是telnet发送一个环境变量到服务器端。
这种方式和咱们平常的telnet输入用户名和密码,应该不是一种方式。


我现在就想通过perl实现这种方式。就是通过perl,发送一个环境变量到telnet服务器端。
即实现telnet -l的功能。
不知道是否支持


QUOTE:
原帖由 apile 于 2008-1-25 11:40 发表
那很简单呀..
在.pl里面..去读取 @ARGV内容..找到 -l -f 的後面的内容..
然後用NET::Telnet在登录的过程中..帮你输入应该输入的内容..
等於simulate telnet -l -f的动作....

你说的这种属于一种交互的方式。
而我想要实现的是通过telnet协议本身支持的environ变量,直接提交过去。呵呵。不知道你是否明白我的意思。
open my $f, "|-", "telnet -l -f"
print $f "XXXXX\n"
典型的坏问题。
应该换个问法。


QUOTE:
原帖由 iamchinly 于 2008-1-26 03:24 发表


你说的这种属于一种交互的方式。
而我想要实现的是通过telnet协议本身支持的environ变量,直接提交过去。呵呵。不知道你是否明白我的意思。

总是要提交过去呀...

PERL的enrionment 变量提取方式..$ENV{}

看不懂..你为什麽执着於-l -f这类引数....

你现在是在写telnet的程序....不是呼叫telnet command....这两者不一样吧...

前者你可以自行决定client如何使用..後者你只能follow command的内容...

要做到telnet的功能...当然可以...
有个认证绕过漏洞:telnet -l -fusername hostip
这样username这个帐号,就不需要输入密码就可以登录到系统。
我想编个脚本来测试下某一个网段的主机,看看有多少主机存在这个问题。