免费注册 查看新帖 |

Chinaunix

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

怎样提取IP地址 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-28 16:25 |只看该作者 |倒序浏览
ppp0      Link encapoint-to-Point Protocol  
          inet addr:192.168.5.1  P-t-P:192.168.5.2  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1496  Metric:1
          RX packets:79 errors:0 dropped:0 overruns:0 frame:0
          TX packets:30 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:9047 (8.8 KiB)  TX bytes:2074 (2.0 KiB)

ppp1      Link encapoint-to-Point Protocol  
          inet addr:192.168.5.1  P-t-P:192.168.5.3  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1496  Metric:1
          RX packets:79 errors:0 dropped:0 overruns:0 frame:0
          TX packets:30 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:9047 (8.8 KiB)  TX bytes:2074 (2.0 KiB)

ppp2      Link encapoint-to-Point Protocol  
          inet addr:192.168.5.1  P-t-P:192.168.5.4  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1496  Metric:1
          RX packets:79 errors:0 dropped:0 overruns:0 frame:0
          TX packets:30 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:9047 (8.8 KiB)  TX bytes:2074 (2.0 KiB)

上面是用ifconfig出来的结果, 请教怎么提取出上面每条PPP的IP地址放在一个变量里。

论坛徽章:
0
2 [报告]
发表于 2009-07-28 16:31 |只看该作者

  1. PPP0=$(ifconfig ppp0|awk '/inet addr/{gsub("[addr:]","");print $2}')
  2. PPP1=$(ifconfig ppp1|awk '/inet addr/{gsub("[addr:]","");print $2}')
  3. PPP2=$(ifconfig ppp2|awk '/inet addr/{gsub("[addr:]","");print $2}')
复制代码

论坛徽章:
0
3 [报告]
发表于 2009-07-28 16:34 |只看该作者

回复 #2 00306 的帖子

可能会有很多条PPP interface
我现在只是列出三条

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
4 [报告]
发表于 2009-07-28 16:39 |只看该作者
  1. awk -F '^.*addr:| ' '/addr/{print $2}' urfile
复制代码

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-01-24 06:20:00
5 [报告]
发表于 2009-07-28 16:40 |只看该作者
  1. eval `ifconfig|awk 'BEGIN{FS="[: ]+"}/^ppp[0-9]+/{s=$1;getline;print s"="$4}'`
复制代码


变量名为ppp后面跟上相应的数字

论坛徽章:
0
6 [报告]
发表于 2009-07-28 16:41 |只看该作者
那可以用

  1. for i in `ls /etc/sysconfig/network-scripts/ifcfg-ppp*`; do awk -F= '/IPADDR/{print $2 }' $i; done
复制代码


我的比较烦琐,可以参照LS的

论坛徽章:
0
7 [报告]
发表于 2009-07-28 16:51 |只看该作者

回复 #5 Minsic 的帖子

不是PPP interface,应该是后面的那个IP, 就是客户端的IPADDRESS

论坛徽章:
0
8 [报告]
发表于 2009-07-28 16:53 |只看该作者

回复 #6 00306 的帖子

ls不能这样用, 会报错。

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
9 [报告]
发表于 2009-07-28 16:55 |只看该作者
是这个?
  1. $ awk -F '^.*P-t-P:| ' '/addr/{print $2}' urfile
  2. 192.168.5.2
  3. 192.168.5.3
  4. 192.168.5.4
复制代码

论坛徽章:
0
10 [报告]
发表于 2009-07-28 16:56 |只看该作者

回复 #10 blackold 的帖子

是的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP