panlei
2019-08-16 fc2431baefd39eab76f9b7872031be85154ff07f
比对底库的ip不再写死,用本地的ip
1个文件已修改
33 ■■■■■ 已修改文件
ruleserver/readyDataForRule.go 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruleserver/readyDataForRule.go
@@ -5,6 +5,7 @@
    "basic.com/pubsub/cache.git/esutil"
    "basic.com/pubsub/protomsg.git"
    "encoding/json"
    "errors"
    "fmt"
    "github.com/go-yaml/yaml"
    "io/ioutil"
@@ -12,6 +13,7 @@
    "nanomsg.org/go-mangos"
    "nanomsg.org/go-mangos/protocol/req"
    "nanomsg.org/go-mangos/transport/tcp"
    "net"
    "os"
    "ruleprocess/cache"
    "ruleprocess/logger"
@@ -174,7 +176,8 @@
        CompareThreshold:compareThreshold,
        Source:false,
    }
    bytes := Push("tcp://192.168.1.182:40010",comArg,sock)
    serverIp, _ := GetLocalIP()
    bytes := Push("tcp://"+serverIp+":40010",comArg,sock)
    var scResult protomsg.SdkCompareResult
    err1 := proto.Unmarshal(bytes, &scResult)
    if err1 != nil {
@@ -363,3 +366,31 @@
    logger.Debug("数据推送成功!收到响应,数据长度为:",len(msg))
    return msg
}
// 获取本机ip
func GetLocalIP() (ipv4 string, err error) {
    var (
        addrs   []net.Addr
        addr    net.Addr
        ipNet   *net.IPNet // IP地址
        isIpNet bool
    )
    // 获取所有网卡
    if addrs, err = net.InterfaceAddrs(); err != nil {
        return
    }
    // 取第一个非lo的网卡IP
    for _, addr = range addrs {
        // 这个网络地址是IP地址: ipv4, ipv6
        if ipNet, isIpNet = addr.(*net.IPNet); isIpNet && !ipNet.IP.IsLoopback() {
            // 跳过IPV6
            if ipNet.IP.To4() != nil {
                ipv4 = ipNet.IP.String() // 192.168.1.1
                return
            }
        }
    }
    err = errors.New("ipv4 not found")
    return
}