`

shell中自定义ip2long函数

阅读更多
关于ip地址的转换,看到CU上一个帖子,自己定义了ip2long和long2ip两个函数,如下:

#!/bin/bash
function IP2long(){
  local IFS='.'
  read IP1 IP2 IP3 IP4 <<<"$1"
  echo $((IP1*(1<<24)+IP2*(1<<16)+IP3*(1<<8)+IP4))
}

function long2IP(){
  local IP=$1
  local NET=
  NET=".$(( IP - (IP >> 8 << 8 ) ))${NET}"
  (( IP >>= 8 ))
  NET=".$(( IP - (IP >> 8 << 8 ) ))${NET}"
  (( IP >>= 8 ))
  NET=".$(( IP - (IP >> 8 << 8 ) ))${NET}"
  (( IP >>= 8 ))
  NET="${IP}${NET}"
  echo $NET
}

ip=${1%/*}
mask=${1#*/}
ip=$(IP2long $ip)
mask=$((((1<<32)-1)<<(32-mask)))
net=$(long2IP $((ip&mask)))
echo $net


用法:
./ip.sh 192.168.5.220/24

根据一个IP/MASK的形式,来计算实际的网络地址

方法是用 mask个1与32-mask个0与IP相与,得到一个新的IP地址,那个地址就是网络地址

想法就是把IP转换成长整数,然后与mask相与后,再转换成点分的表示法
分享到:
评论

相关推荐

    pb 用Ping方法 判断网络是否连通 IP地址是否有效 powerbuild

    在PowerBuilder中,我们可以利用操作系统提供的API函数或者自定义DLL来模拟这个过程。 在PowerBuilder中,我们可以创建一个动态链接库(DLL)或者使用系统命令执行Ping操作。一种常见的方法是使用`syscommand`函数...

    c++builder资料

    3. **添加自定义函数**:在DLL中加入所需的函数或过程。 4. **导出函数**:使用`__declspec(dllexport)`关键字标记需要导出的函数。 **示例代码**: ```cpp #include extern "C" __declspec(dllexport) int test...

    vbs版调用winsock网上聊天

    在IT领域,VBScript(Visual Basic Script)是一种广泛使用的脚本语言,特别是在Windows环境中,它为自动化任务和轻量级应用程序开发提供了便利。本话题主要关注如何使用VBScript结合Winsock组件来实现网上聊天功能...

    Test_sub_long.rar_Linux/Unix编程_Unix_Linux_

    2. **进程管理**:在这些系统中,进程是执行中的程序实例。了解如何创建、控制、终止进程(如使用`fork()`, `exec()`和`wait()`系统调用)是系统编程的基础。 3. **文件系统**:理解Unix/Linux文件系统的层次结构、...

    70个JAVA问答.txt

    例如,在Linux系统中,如果想要执行一个shell脚本`aaa.sh`,可以使用`System.getRuntime().exec("bash )`。而在Windows系统中,则需要使用适应Windows环境的命令。 ### 2. 字符串的双引号表示 在Java中,字符串...

    C++程序员需具备知识.pdf

    - **堆栈概念**:理解函数调用过程中的堆栈机制。 - **函数重载**:学会使用重载提供多种函数实现方式。 - **标准IO** - **条件状态**:了解条件状态的设置与检查。 - **缓冲区**:掌握缓冲区的管理方法。 - *...

    java开源包2

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包1

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包11

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包3

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包6

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包5

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包10

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包4

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包8

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包7

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包9

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包101

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    Java资源包01

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

Global site tag (gtag.js) - Google Analytics