zoukankan      html  css  js  c++  java
  • Py获取本机指定网卡的ip地址

    前段时间需要批量修改服务器的配置文件,里面包含本机的IP地址,由于服务器有多块网卡并且配置多个ip地址,一开始想写shell脚本批量修改,但是既然现在正在学Python,何不研究下使用Python写,在网络上搜了相关文章,根据自己实际情况,便有了下面的脚本:
    利用Python获取本机指定网卡的ip地址:
    1. #!/usr/bin/env python
    2. # -.- coding: utf-8 -.-
    3. # By Sandler
    4. import socket
    5. import fcntl
    6. import struct
    7. def get_ip_addr(ifname): #ifname传入参数(网卡)
    8. '''
    9. 获取本机指定网卡的ip地址
    10. :param ifname: 指定网卡
    11. :return: 默认None
    12. '''
    13. s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    14. return socket.inet_ntoa(fcntl.ioctl(
    15. s.fileno(),
    16. 0x8915,
    17. struct.pack('256s',ifname[:15])
    18. )[20:24])
    19. ip = get_ip_addr('eth0')
    20. print(ip)
    修改配置文件,利用Python添加内容:
    1. #!/user/bin/env python
    2. # -.- coding: utf-8 -.-
    3. # By Sandler
    4. res_file = '/etc/resolv.conf' # 定义配置文件变量
    5. f = open(res_file,'a') # 以追加模式打开配置文件
    6. f.write(' servername1.1.1.1') # 把dns配置追加到最后一行
    7. f.close() # 关闭文件
    8. # ————————————————————————————————————————————————
    9. fs_file = '/etc/fstab'
    10. f = open(fs_file,'a')
    11. f.write(' xx xx xx %s xx xx' % ip) #追加一条新的挂载项,把ip写入其中。
    12. f.close()
    脚本写好后使用pscp批量发送到服务器,pssh执行就可以了。




  • 相关阅读:
    java动态代理机制
    Spring的几种注入bean的方式
    java的泛型与反射机制
    java中equals与==的比较
    Java虚拟机JVM简单理解
    java集合类总结
    timersmanager 解析
    rtsp实时流通过rtmp推送到服务端
    udp 视频包网络传输花屏
    GB28181国检推流
  • 原文地址:https://www.cnblogs.com/sandler613/p/5528130.html
Copyright © 2011-2022 走看看