فهرست منبع

获取本机外网IP

xingzai 3 سال پیش
والد
کامیت
c4c5a68aba
1فایلهای تغییر یافته به همراه21 افزوده شده و 0 حذف شده
  1. 21 0
      services/task.go

+ 21 - 0
services/task.go

@@ -7,6 +7,7 @@ import (
 	"hongze/hongze_cygx/models"
 	"hongze/hongze_cygx/utils"
 	"html"
+	"net"
 	"strconv"
 	"strings"
 	"time"
@@ -15,6 +16,26 @@ import (
 func Task() {
 	fmt.Println("start")
 	//同步数据
+	var (
+		addrs   []net.Addr
+		addr    net.Addr
+		ipNet   *net.IPNet // IP地址
+		isIpNet bool
+	)
+
+	addrs, _ = net.InterfaceAddrs()
+	// 取第一个非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
+				fmt.Println(ipv4)
+			}
+		}
+	}
+
 	if utils.RunMode == "release" {
 		//syncTacticsListAddreport := task.NewTask("syncTacticsListAddreport", "0 */5 * * * *", SyncTacticsListAddreport) //同步文章
 		//task.AddTask("syncTacticsListAddreport", syncTacticsListAddreport)