Linux服务器绑定了多个IP的时候如何获取主IP

        当Linux服务器绑定了多个IP地址的时候,在一些特殊应用场合,需要获取主IP,即向外访问的时候IP包上带的IP,一种方式是通过shell脚本获得,另一种方式是通过其它脚本获取,本程序通过golang程序实现了Linux服务器绑定多个IP地址的时候主IP的获取。

1、程序源码如下:

package main

import (
    "fmt"
    "net"
    "os"
    "strings"
)

func main() {
    MasterIP := "127.0.0.1"
    conn, err := net.Dial("udp", "8.8.8.8:53")
    if err != nil {

        //get ether name && ether ip
        interfaces, _ := net.Interfaces()
        //fmt.Println(interfaces)
        for _, inter := range interfaces {
            if addrs, err := inter.Addrs(); err == nil {
                for _, addr := range addrs {
                    if addr.(*net.IPNet).IP.To4() != nil &&
                        addr.(*net.IPNet).IP.String() != "127.0.0.1" {
                        //fmt.Println(inter.Name, "->", addr.(*net.IPNet).IP.String())
                        if len(inter.Name) >= 1 && string(inter.Name[0]) == "e" {
                            MasterIP = addr.(*net.IPNet).IP.String()
                            //fmt.Println(inter.Name, "->", addr.(*net.IPNet).IP.String())
                            break
                        }

                    }

                }
            }

        }
        fmt.Println(MasterIP)
        os.Exit(0)
    }
    defer conn.Close()
    MasterIP = strings.Split(conn.LocalAddr().String(), ":")[0]
    fmt.Println(MasterIP)
    os.Exit(0)
}

2、执行方式如下:
安装golang,yum install golang 或者 sudo apt-get install golang
执行上面的golang程序,go run masterip.go,即可获取服务器的主IP地址

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值