32位主机序或者网络序值转换为ip(小工具)

网络开发人员,有时候需要将32位数字转换为ip。为了提高工作效率,我用python(基于python2.x版本)开发了小工具,可能比较简单,就当抛砖引玉吧!

#!/usr/bin/env python 

import sys
import getopt
import socket
import struct
def hostToIp(value):
    if value.isdigit():
        network_value = socket.htonl(long(value))
        print '[network order value]:%s' %network_value
        ip = socket.inet_ntoa(struct.pack("!I", network_value))
        print '[ip]:%s'%ip  
    else:
        print 'The host value must be number'  

def networkToIp(value):
    if value.isdigit():
        host_value = socket.ntohl(long(value))
        print '[host order value]:%s' %host_value
        ip = socket.inet_ntoa(struct.pack("!I", int(value)))
        print '[ip]:%s'%ip  
    else:
        print 'The network value must be number' 

def usage():
    print 'hntoa.py usage:'
    print '-h,--help: show help message.'
    print '-v, --version: show script version.'
    print '-H,--host: input an host order value.'
    print '-N, --network: input an network order value.'

def version():
    print 'hntoa.py 1.0'
def outPut(args):
    print 'Hello, %s'%args
def main(argv):
    try:
        opts, args = getopt.getopt(argv[1:], 'H:N:hv', ['host=','version','help','network='])
    except getopt.GetoptError, err:
        print str(err)
        usage()
        sys.exit(2)
    for o, a in opts:
        if o in ('-h', '--help'):
            usage()
            sys.exit(1)
        elif o in ('-v', '--version'):
            version()
            sys.exit(0)
        elif o in ('-H', '--host'):
            print '[host order value]:%s' %a
            hostToIp(a)

        elif o in ('-N', '--network'):
            print '[network order value]:%s' %a
            networkToIp(a)
            sys.exit(0)

        else:
            print 'error option'
            sys.exit(3)

if __name__ == '__main__':
    main(sys.argv)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值