- 论坛徽章:
- 0
|
laputa1973 发表于 2013-06-18 18:25 ![]()
我只弄过linux下的,不知道其他平台怎么实现
LZ可以分享下
在 Telnet 模块的 new 和 open 函数中,增加一个 $device 变量。
在 new 中,仿造 localhost 的形式对 $device 进行初始化。- sub device {
- my ($self, $device) = @_;
- my (
- $prev,
- $s,
- );
- $s = *$self->{net_telnet};
- $prev = $s->{device};
- if (@_ >= 2) {
- unless (defined $device) {
- $device = "";
- }
- $s->{device} = $device;
- }
- $prev;
- }
复制代码 在 open 中,使用 setsockopt 函数进行设备绑定。- setsockopt $self, SOL_SOCKET, SO_BINDTODEVICE(), pack("Z*", $device) ;
复制代码 使用方法:- my $obj = new Net::Telnet( Host => "10.1.1.1", device => 'eth1', Localfamily => "ipv4", Prompt => "/#/");
复制代码 |
|