经典的ASP形式到perl,反之亦然

时间:2014-03-18 01:19:12

标签: asp.net perl asp-classic

我有一个sample.asp表单页面,如下所示:

<form method="POST" action="index.asp">
    <p>Switch IP:<input type="test" name="SwitchIP"></p>
    <p>Login: <input type="test" name="Login"></p>
    <p>Password:<input type="password" name="Password"></p>
    <p><input type="submit" value="Submit" name="B1"><p>
</form>

使用提交按钮占用三个输入变量ip,login和password。

我有一个perl脚本,如下所示:

#!/usr/bin/perl -w
use strict;
use Net::Telnet::Cisco;

my $SwitchIP = '192.168.10.1';

my $session = Net::Telnet::Cisco->new(Host => $host, -Prompt=>'/(?m:^[\w.&-]+\s?(?:\  (config[^\)]*\))?\s?[\$#>]\s?(?:\(enable\))?\s*$)/');

$session->login(Name => 'admin',Password => 'password');
$session->cmd('terminal length 0');
my @ver = $session->cmd('show mac-address-table dynamic');
print @ver;
$session->close();

此脚本在cisco开关上运行,并打印出&#39; show mac-address-table dynamic&#39;命令。我想知道如何组合这两个脚本,以便将ASP表单中的数据提供给perl脚本,并将@ver输出打印回屏幕上。 我在Linux服务器上使用Apache :: ASP运行它。 如果有任何不正确的地方,请纠正我。感谢。

1 个答案:

答案 0 :(得分:2)

步骤1,使其成为perl脚本可以接受的参数。可能想要为此添加一些错误检查。

#!/usr/bin/perl -w
use strict;
use Net::Telnet::Cisco;

my ($host, $name, $password) = @ARGV;

my $session = Net::Telnet::Cisco->new(Host => $host, -Prompt=>'/(?m:^[\w.&-]+\s?(?:\  (config[^\)]*\))?\s?[\$#>]\s?(?:\(enable\))?\s*$)/');

$session->login(Name => $name,Password => $password);
$session->cmd('terminal length 0');
my @ver = $session->cmd('show mac-address-table dynamic');
print @ver;
$session->close();

步骤2,测试以确保这在命令行中起作用:

perl yourscript.pl 192.168.10.1 admin password

步骤3,使其成为ASP表格可以在POST时调用perl脚本。