// Package netutil 提供网络相关的工具函数。
//
// 该文件包含主机名处理相关的工具函数。
//
// 作者：xfy
package netutil

// StripPort 从 Host 头中移除端口号。
//
// 支持 IPv4 和 IPv6 格式：
//   - example.com:8080 -> example.com
//   - [::1]:8080 -> [::1]
//   - [2001:db8::1]:443 -> [2001:db8::1]
//   - example.com -> example.com
//
// 参数：
//   - host: 主机名（可能包含端口）
//
// 返回值：
//   - string: 移除端口后的主机名
func StripPort(host string) string {
	if len(host) == 0 {
		return host
	}

	// IPv6 格式：以 '[' 开头，找 ']:' 作为分隔点
	if host[0] == '[' {
		for i := 0; i < len(host)-1; i++ {
			if host[i] == ']' && host[i+1] == ':' {
				return host[:i+1]
			}
		}
		return host
	}

	// IPv4 或域名格式：找第一个 ':' 作为分隔点
	for i := 0; i < len(host); i++ {
		if host[i] == ':' {
			return host[:i]
		}
	}

	return host
}
