彙總下幾個IP計算 轉換的shell小指令碼 轉

2022-01-12 23:46:40 字數 1609 閱讀 9438

原文:

1. ip轉換為整數

> vi ip2num.sh

#!/bin/bash

# 所有用到的命令全是bash內建命令

ip_addr=$1

[[ "$ip_addr" =~ "^[0-9]\.[0-9]\.[0-9]\.[0-9]$" ]] ||

ip_list=$;

read -a ip_array <<<$;      # 把點分十進位制位址拆成陣列(read的-a選項表示把輸入讀入到陣列, 下標從0開始)

echo $(( $<<24 | $<<16 | $<<8 | $ ));       # bash的$(()) 支援位運算

hex_string=$(printf "0x%02x%02x%02x%02x\n" $ $ $ $);     # 這裡演示另外一種不使用位運算的方法

printf "%d\n" $;

# 參考自:

# 可以使用mysql的select inet_aton('$'); 來驗證結果是否正確。

2. 整數轉換為ip

> vi num2ip.sh

#!/bin/bash

n=$1

h1=$(($n & 0x000000ff))

h2=$((($n & 0x0000ff00) >> 8))

l1=$((($n & 0x00ff0000) >> 16))

l2=$((($n & 0xff000000) >> 24))

echo $l2.$l1.$h2.$h1

或者#!/bin/bash

n=$1

declare -i h1="$n & 0x000000ff"

declare -i h2="($n & 0x0000ff00) >> 8"

declare -i l1="($n & 0x00ff0000) >> 16"

declare -i l2="($n & 0xff000000) >> 24"

echo "$l2.$l1.$h2.$h1"

# the variable is treated as an integer; arithmetic evaluation (see arithmetic evaluation ) is performed when the variable is assigned a value.

# 參考自:

3. 把掩碼長度轉換成掩碼

# 可以根據2修改下, 255.255.255.255的整型值是4294967295

#!/bin/bash

declare -i full_mask_int=4294967295

declare -i mask_len=$1

declare -i left_move="32 - $"

declare -i n="$ << $"

declare -i h1="$n & 0x000000ff"

declare -i h2="($n & 0x0000ff00) >> 8"

declare -i l1="($n & 0x00ff0000) >> 16"

declare -i l2="($n & 0xff000000) >> 24"

echo "$l2.$l1.$h2.$h1"

彙總下幾個IP計算 轉換的shell小指令碼

1.ip轉換為整數 vi ip2num.sh bin bash 所有用到的命令全是bash內建命令 ip addr 1 ip addr 0 9 0 9 0 9 0 9 ip list read a ip array 把點分十進位制位址拆成陣列 read的 a選項表示把輸入讀入到陣列,下標從0開始 e...

linux下的幾個小技巧

在linux下啟用彩色文字 操作過程 很簡單 我用的是red hat 企四版的,這個rpm包在第二張安裝光碟裡,是vim enhanced 6.3.035 3.i386.rpm 1.放入第二張安裝盤 2.mount dev cdrom 3.rpm ivh media cdrom redhat rpm...

source insight下幾個實用的小工具

1 sourcemonitor使用 c語言度量值 c metrics 舉例1 函式為 舉例2 函式為 這個工具可以對c語言進行規則對齊。3 sourceinsight scan sourceinsight scan 是一款整合在 sourceinsight 中的c c 靜態分析外掛程式,整合了cpp...