package main

import (
	"fmt"
	"io"
	"net/http"
	"strings"
)

func GetLocalIpv4Addr() string {
	// 发送 HTTP GET 请求到外部服务
	resp, err := http.Get("https://inet-ip.aixiao.me/")
	if err != nil {
		fmt.Printf("请求失败: %s\n", err)
		return "NULL"
	}
	defer resp.Body.Close() // 确保响应体在函数结束时关闭

	// 读取响应体内容
	ip, err := io.ReadAll(resp.Body)
	if err != nil {
		fmt.Printf("读取响应失败: %s\n", err)
		return "NULL"
	}

	// 去除字符串末尾的换行符
	ipStr := strings.TrimRight(string(ip), "\n")

	// 输出获取到的公网 IP
	fmt.Printf("%s %d\n", ipStr, len(ipStr))

	return ipStr
}
