| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- package socket
- import (
- "fmt"
- "net"
- "pbx-api-gin/internal/app/stc/active"
- "pbx-api-gin/pkg/lfshook"
- "time"
- )
- var Conn net.Conn
- var Conn8 net.Conn
- var ConnToSlave net.Conn
- const RemotePort = 10100
- const LocalPort = 10201
- const LocalPort8 = 10202
- const LocalServerPort = 10000
- const RemoteAddr = "10.0.11.11"
- const RemoteAddr8 = "10.0.11.81"
- func IsIPExists(targetIP string) (bool, error) {
- // 解析目标 IP
- //lfshook.NewLogger().Logger.Infof("========targetIP=========%s", targetIP)
- ip := net.ParseIP(targetIP)
- if ip == nil {
- return false, fmt.Errorf("invalid IP address: %s", targetIP)
- }
- interfaces, err := net.Interfaces()
- if err != nil {
- return false, err
- }
- for _, iface := range interfaces {
- addrs, err := iface.Addrs()
- if err != nil {
- continue // 忽略无法读取地址的接口
- }
- for _, addr := range addrs {
- if ipnet, ok := addr.(*net.IPNet); ok && ipnet.IP != nil {
- // 精确匹配 IP(忽略掩码,只看地址本身是否一致)
- if ipnet.IP.Equal(ip) ||
- (ip.To4() != nil && ipnet.IP.To4() != nil && ipnet.IP.To4().Equal(ip.To4())) {
- return true, nil
- }
- }
- }
- }
- return false, nil
- }
- // Get eth0 IP
- func SetMasterCabNum() {
- count := 0
- getIP:
- ext1, err := IsIPExists("10.0.11.11")
- if err != nil {
- lfshook.NewLogger().Infof("Check IP 10.0.11.11 err :%+v", err)
- }
- // Init cab1 number and master role
- if ext1 {
- active.CabNum = "1"
- active.Master = true
- return
- }
- ext8, err := IsIPExists("10.0.11.81")
- if err != nil {
- lfshook.NewLogger().Infof("Check IP 10.0.11.81 err:%+v", err)
- }
- // Init cab8 number and master role
- if ext8 {
- active.CabNum = "8"
- active.Master = false
- return
- }
- if !(ext1 || ext8) {
- if count < 5 {
- count++
- time.Sleep(time.Second * 2)
- goto getIP
- }
- lfshook.NewLogger().Infof("Can not get device IP ! Set Cabnum=1 Master=true by default .")
- active.CabNum = "1"
- active.Master = true
- }
- }
|