免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6097 | 回复: 16
打印 上一主题 下一主题

关于用PERL 语言实现获取当前机器的IP,并配置成固定IP [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-06-21 13:14 |只看该作者 |倒序浏览
如题,想用PERL语言写一个 获取本机的IP/DNS/GW(机器的系统是WINDOWS,Redhat,SUSE或VMware),
并把获得的IP/DNS/GW都配置成固定的。
     不知道能不能实现。

论坛徽章:
18
巳蛇
日期:2014-12-03 08:27:5115-16赛季CBA联赛之吉林
日期:2016-04-18 15:24:24qiaoba
日期:2016-06-17 17:41:1615-16赛季CBA联赛之八一
日期:2016-06-20 15:13:1415-16赛季CBA联赛之广夏
日期:2016-06-29 10:38:28极客徽章
日期:2016-12-07 14:03:4015-16赛季CBA联赛之吉林
日期:2017-03-06 13:47:55
2 [报告]
发表于 2010-06-21 13:16 |只看该作者
可以

论坛徽章:
0
3 [报告]
发表于 2010-06-21 13:41 |只看该作者

论坛徽章:
0
4 [报告]
发表于 2010-06-22 08:59 |只看该作者
我自己写了一个获取WINDOWS下DHCP IP的程序:
$ip = $1 if `ipconfig /all` =~ m/IP Address.+\D(\d+\.\d+\.\d+\.\d+)\D/;
print "IP address is $ip\n";

$GW = $1 if `ipconfig /all` =~ m/Default Gateway.+\D(\d+\.\d+\.\d+\.\d+)\D/;
print "gateway is $GW\n";

$dns = $1 if `ipconfig /all` =~ m/DNS Servers.+\D(\d+\.\d+\.\d+\.\d+)\D/;
print "DNS is $dns\n";
但是不知道怎么可以用PERL设置成静态IP。
    还有就是在REDHAT  SUSE VMWARE下如何获得DHCP IP,以及配置成静态IP
有知道的请指点一下,谢谢啊

论坛徽章:
0
5 [报告]
发表于 2010-06-22 09:42 |只看该作者

论坛徽章:
0
6 [报告]
发表于 2010-06-22 10:09 |只看该作者
回复 4# i57110403


    windows 设置IP、 网关、DNS的方法 利用CMD 命令 netsh -> interface -> ipv4 -> add address "Nis information" x.x.x.x netmask
                                                                                                            add address "Nis information" gateway=x.x.x.x gwmetric=1

                                                                                                            add dnsservers "Local Area Connection" x.x.x.x index=1

   利用expect模块可以实现啦。linux 更简单啦。方法很多啦

论坛徽章:
0
7 [报告]
发表于 2010-06-22 10:10 |只看该作者
回复 5# 兰花仙子


    这个模块试试啦,顶了

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
8 [报告]
发表于 2010-06-22 10:14 |只看该作者
  1. use Sys::Hostname;
  2. use Socket;
  3. $host = hostname();
  4. my $address = inet_ntoa(scalar gethostbyname($host || 'localhost'));
  5. print $address;
复制代码

论坛徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年纪念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役纪念章
日期:2022-04-24 14:33:24
9 [报告]
发表于 2010-06-22 10:43 |只看该作者
  1. my $IP = `ifconfig -a | awk '/broadcast/{print \$2}`;
  2. print "$IP";
复制代码

论坛徽章:
0
10 [报告]
发表于 2010-06-22 13:18 |只看该作者
ifconfig|perl -lne 'print $1 if /((\d+\.){3}\d+)/ && !/127/'
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP