util

package module
v0.0.0-...-b6f57e1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 4, 2022 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var CustomDnsWithNoProxyHttpTransport http.RoundTripper = &http.Transport{
	Proxy:                 nil,
	ForceAttemptHTTP2:     true,
	MaxIdleConns:          100,
	IdleConnTimeout:       90 * time.Second,
	TLSHandshakeTimeout:   10 * time.Second,
	ExpectContinueTimeout: 1 * time.Second,
	DialContext: (&net.Dialer{
		Timeout:   30 * time.Second,
		KeepAlive: 30 * time.Second,
		Resolver: &net.Resolver{
			PreferGo: true,
			Dial: func(ctx context.Context, network, address string) (net.Conn, error) {
				dnsResolverAddress := validDnsResolverAddress(address)
				d := net.Dialer{
					Timeout: dnsResolverTimeout,
				}
				return d.DialContext(ctx, network, dnsResolverAddress)
			},
		},
	}).DialContext,
}

自定义的Transport,内容继承 DefaultTransport,进行如下修改 1. 禁止使用代理 2. 使用指定的DNS地址进行解析(需要使用go1.19版本以上才行,应为在1.19版本修复了windows 无法使用自定义dns的问题)

Functions

func AESCBCDecrypt

func AESCBCDecrypt(key, iv, cipherText []byte) ([]byte, error)

AES CBC 解密

@param key []byte aes密钥,长度 16, 24, or 32 对应 AES-128, AES-192, or AES-256

@param iv []byte CBC 初始化向量,长度 16

@param cipherText []byte 待解密内容

func AESCBCEncrypt

func AESCBCEncrypt(key, iv, plainText []byte) ([]byte, error)

AES CBC 加密

@param key []byte aes密钥,长度 16, 24, or 32 对应 AES-128, AES-192, or AES-256

@param iv []byte CBC 初始化向量,长度 16

@param plainText []byte 待加密内容

func Base64Decode

func Base64Decode(src string) ([]byte, error)

base64 解码

func Base64Encode

func Base64Encode(src []byte) string

base编码

func DefaultAtoi

func DefaultAtoi(s string, defaultValue int) int

字符串转int

@param defaultValue int 转换失败默认值

func GetExecutableDirectory

func GetExecutableDirectory() (string, error)

获取执行程序目录

func GetExecutablePath

func GetExecutablePath() (string, error)

获取执行程序路径

func GetPublicIP

func GetPublicIP(ipType string) (string, error)

获取当前上网的公网ip地址

@param ipType: V4 或 V6

func GetTCPListen

func GetTCPListen(portPath, ip string) (net.Listener, error)

通过端口文件获取 listen

@param portPath string 端口文件路径

@param ip string 监听的IP. 本地: 127.0.0.1、[::1] ; 全部: 0.0.0.0 、[::] 、 空字符串 ; 指定IP: 192.168.1.2;

func MatchIPv4

func MatchIPv4(s string) (string, error)

查找字符串中第一个IPV4地址

func MatchIPv6

func MatchIPv6(s string) (string, error)

查找字符串中第一个IPV6地址

func OpenUrl

func OpenUrl(url string) error

使用系统浏览器打开网页

func PKCS7Padding

func PKCS7Padding(ciphertext []byte, blockSize int) ([]byte, error)

PKCS#7 填充

@param ciphertext []byte 原始内容

@param blockSize int 数据块分割大小

func PKCS7UnPadding

func PKCS7UnPadding(plantText []byte) ([]byte, error)

PKCS#7 去除填充

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL