mirror of
https://github.com/adams549659584/go-proxy-bingai.git
synced 2025-06-03 15:02:30 +08:00
262 lines
11 KiB
Go
262 lines
11 KiB
Go
package common
|
|
|
|
import (
|
|
"fmt"
|
|
"math/rand"
|
|
"net"
|
|
"time"
|
|
)
|
|
|
|
// 使用真实有效的美国ip
|
|
// https://lite.ip2location.com/united-states-of-america-ip-address-ranges
|
|
// https://cdn-lite.ip2location.com/datasets/US.json?_=1683336720620
|
|
//
|
|
// async function getIpRange() {
|
|
// const results = await fetch(`https://cdn-lite.ip2location.com/datasets/US.json?_=${Date.now()}`)
|
|
// .then((res) => res.json())
|
|
// .then((res) => {
|
|
// const limitCount = 10000;
|
|
// return res.data.filter((x) => parseInt(x[2].replace(/,/g,'')) >= limitCount).map((x) => `{"${x[0]}", "${x[1]}"}, //${x[2]}`);
|
|
// });
|
|
// console.log(`results : `,results);
|
|
// return results.join('\n');
|
|
// }
|
|
//
|
|
// copy(await getIpRange());
|
|
var IP_RANGE = [][]string{
|
|
{"3.2.50.0", "3.5.31.255"}, //192,000
|
|
{"3.5.74.0", "3.5.133.255"}, //15,360
|
|
{"3.12.0.0", "3.23.255.255"}, //786,432
|
|
{"3.30.0.0", "3.33.34.255"}, //205,568
|
|
{"3.33.36.0", "3.33.255.255"}, //56,320
|
|
{"3.40.0.0", "3.63.255.255"}, //1,572,864
|
|
{"3.80.0.0", "3.95.255.255"}, //1,048,576
|
|
{"3.100.0.0", "3.103.255.255"}, //262,144
|
|
{"3.116.0.0", "3.119.255.255"}, //262,144
|
|
{"3.128.0.0", "3.247.255.255"}, //7,864,320
|
|
{"4.0.0.0", "4.1.179.255"}, //111,616
|
|
{"4.1.181.0", "4.14.241.255"}, //867,584
|
|
{"4.15.21.0", "4.16.47.255"}, //72,448
|
|
{"4.16.55.0", "4.18.65.255"}, //133,888
|
|
{"4.18.68.0", "4.28.135.255"}, //672,768
|
|
{"4.28.139.0", "4.31.207.255"}, //214,272
|
|
{"4.31.209.0", "4.33.203.255"}, //129,792
|
|
{"4.33.234.0", "4.37.0.255"}, //202,496
|
|
{"4.37.2.0", "4.42.31.255"}, //335,360
|
|
{"4.42.35.0", "4.55.87.255"}, //865,536
|
|
{"4.55.95.0", "4.59.175.255"}, //282,880
|
|
{"4.59.179.0", "4.71.152.255"}, //779,776
|
|
{"4.71.154.0", "4.143.255.255"}, //4,744,704
|
|
{"4.148.0.0", "4.157.255.255"}, //655,360
|
|
{"4.184.0.0", "4.184.55.255"}, //14,336
|
|
{"4.198.160.0", "4.198.255.255"}, //24,576
|
|
{"4.203.96.0", "4.203.255.255"}, //40,960
|
|
{"4.227.0.0", "4.227.255.255"}, //65,536
|
|
{"4.232.200.0", "4.232.255.255"}, //14,336
|
|
{"4.236.0.0", "4.236.255.255"}, //65,536
|
|
{"4.242.0.0", "4.242.255.255"}, //65,536
|
|
{"4.246.0.0", "4.246.255.255"}, //65,536
|
|
{"4.248.128.0", "4.249.255.255"}, //98,304
|
|
{"4.255.0.0", "4.255.255.255"}, //65,536
|
|
{"5.78.0.0", "5.78.255.255"}, //65,536
|
|
{"5.153.23.0", "5.153.63.255"}, //10,496
|
|
{"6.0.0.0", "8.3.111.255"}, //33,779,712
|
|
{"8.3.128.0", "8.5.250.255"}, //162,560
|
|
{"8.5.252.0", "8.7.243.255"}, //129,024
|
|
{"8.7.245.0", "8.10.5.255"}, //135,424
|
|
{"8.10.8.0", "8.14.121.255"}, //291,328
|
|
{"8.14.123.0", "8.14.196.255"}, //18,944
|
|
{"8.15.0.0", "8.17.204.255"}, //183,552
|
|
{"8.17.207.0", "8.18.49.255"}, //25,344
|
|
{"8.18.51.0", "8.18.112.255"}, //15,872
|
|
{"8.18.197.0", "8.19.7.255"}, //17,152
|
|
{"8.19.9.0", "8.20.99.255"}, //88,832
|
|
{"8.20.128.0", "8.20.252.255"}, //32,000
|
|
{"8.21.42.0", "8.21.109.255"}, //17,408
|
|
{"8.21.112.0", "8.22.175.255"}, //81,920
|
|
{"8.22.177.0", "8.23.138.255"}, //55,808
|
|
{"8.23.140.0", "8.23.239.255"}, //25,600
|
|
{"8.24.16.0", "8.24.241.255"}, //57,856
|
|
{"8.24.245.0", "8.25.95.255"}, //27,392
|
|
{"8.25.99.0", "8.25.248.255"}, //38,400
|
|
{"8.25.250.0", "8.26.93.255"}, //25,600
|
|
{"8.26.95.0", "8.26.175.255"}, //20,736
|
|
{"8.26.181.0", "8.27.63.255"}, //35,584
|
|
{"8.27.80.0", "8.28.3.255"}, //46,080
|
|
{"8.28.21.0", "8.28.81.255"}, //15,616
|
|
{"8.28.83.0", "8.28.126.255"}, //11,264
|
|
{"8.28.128.0", "8.28.200.255"}, //18,688
|
|
{"8.28.214.0", "8.29.104.255"}, //37,632
|
|
{"8.29.106.0", "8.29.223.255"}, //30,208
|
|
{"8.29.225.0", "8.30.207.255"}, //61,184
|
|
{"8.30.235.0", "8.33.95.255"}, //161,024
|
|
{"8.33.138.0", "8.34.68.255"}, //47,872
|
|
{"8.34.72.0", "8.34.145.255"}, //18,944
|
|
{"8.34.147.0", "8.34.199.255"}, //13,568
|
|
{"8.34.224.0", "8.35.56.255"}, //22,784
|
|
{"8.35.60.0", "8.35.148.255"}, //22,784
|
|
{"8.35.150.0", "8.35.210.255"}, //15,616
|
|
{"8.35.212.0", "8.36.76.255"}, //30,976
|
|
{"8.36.78.0", "8.36.129.255"}, //13,312
|
|
{"8.36.131.0", "8.36.215.255"}, //21,760
|
|
{"8.36.221.0", "8.37.40.255"}, //19,456
|
|
{"8.37.44.0", "8.38.146.255"}, //91,904
|
|
{"8.38.173.0", "8.39.5.255"}, //22,784
|
|
{"8.39.19.0", "8.39.124.255"}, //27,136
|
|
{"8.39.145.0", "8.39.200.255"}, //14,336
|
|
{"8.39.216.0", "8.40.25.255"}, //16,896
|
|
{"8.40.32.0", "8.40.106.255"}, //19,200
|
|
{"8.40.141.0", "8.41.4.255"}, //30,720
|
|
{"8.41.40.0", "8.42.7.255"}, //57,344
|
|
{"8.42.9.0", "8.42.50.255"}, //10,752
|
|
{"8.42.56.0", "8.42.160.255"}, //26,880
|
|
{"8.42.173.0", "8.42.244.255"}, //18,432
|
|
{"8.42.246.0", "8.43.120.255"}, //33,536
|
|
{"8.43.124.0", "8.43.223.255"}, //25,600
|
|
{"8.44.7.0", "8.44.57.255"}, //13,056
|
|
{"8.44.93.0", "8.45.95.255"}, //66,304
|
|
{"8.45.97.0", "8.46.112.255"}, //69,632
|
|
{"8.46.119.0", "8.47.68.255"}, //52,736
|
|
{"8.47.70.0", "8.49.215.255"}, //168,448
|
|
{"8.49.217.0", "8.50.11.255"}, //13,056
|
|
{"8.50.21.0", "8.51.0.255"}, //60,416
|
|
{"8.51.64.0", "8.127.255.255"}, //5,029,888
|
|
{"8.192.0.0", "8.192.108.255"}, //27,904
|
|
{"8.192.110.0", "8.207.255.255"}, //1,020,416
|
|
{"8.221.0.0", "8.221.127.255"}, //32,768
|
|
{"8.224.0.0", "8.238.42.255"}, //928,512
|
|
{"8.238.53.0", "8.238.142.255"}, //23,040
|
|
{"8.238.205.0", "8.241.255.255"}, //209,664
|
|
{"8.244.80.0", "8.244.130.255"}, //13,056
|
|
{"8.244.132.0", "8.244.255.255"}, //31,744
|
|
{"8.245.64.0", "8.245.127.255"}, //16,384
|
|
{"8.245.160.0", "8.245.255.255"}, //24,576
|
|
{"8.246.139.0", "8.246.191.255"}, //13,568
|
|
{"8.246.201.0", "9.9.8.255"}, //1,196,032
|
|
{"9.9.10.0", "9.255.255.255"}, //16,184,832
|
|
{"11.0.0.0", "11.210.23.255"}, //13,768,704
|
|
{"11.210.25.0", "12.5.185.255"}, //3,383,552
|
|
{"12.5.188.0", "12.19.87.255"}, //891,904
|
|
{"12.19.96.0", "12.24.140.255"}, //339,200
|
|
{"12.24.142.0", "12.35.147.255"}, //722,432
|
|
{"12.35.149.0", "12.41.127.255"}, //387,840
|
|
{"12.41.136.0", "12.46.103.255"}, //319,488
|
|
{"12.46.106.0", "12.129.111.255"}, //5,441,024
|
|
{"12.129.113.0", "12.139.119.255"}, //657,152
|
|
{"12.139.121.0", "12.144.81.255"}, //317,696
|
|
{"12.144.88.0", "12.159.147.255"}, //998,400
|
|
{"12.159.152.0", "12.174.223.255"}, //1,001,472
|
|
{"12.175.0.0", "12.184.30.255"}, //597,760
|
|
{"12.184.32.0", "12.192.62.255"}, //532,224
|
|
{"12.192.64.0", "12.196.47.255"}, //258,048
|
|
{"12.196.63.0", "12.204.9.255"}, //510,720
|
|
{"12.204.16.0", "12.206.179.255"}, //173,056
|
|
{"12.206.184.0", "12.208.168.255"}, //127,232
|
|
{"12.208.172.0", "13.32.0.255"}, //5,199,104
|
|
{"13.32.176.0", "13.32.215.255"}, //10,240
|
|
{"13.34.93.0", "13.34.255.255"}, //41,728
|
|
{"13.35.73.0", "13.35.127.255"}, //14,080
|
|
{"13.44.0.0", "13.47.255.255"}, //262,144
|
|
{"13.52.0.0", "13.52.255.255"}, //65,536
|
|
{"13.56.0.0", "13.66.255.255"}, //720,896
|
|
{"13.67.128.0", "13.68.255.255"}, //98,304
|
|
{"13.71.192.0", "13.72.191.255"}, //65,536
|
|
{"13.73.32.0", "13.73.95.255"}, //16,384
|
|
{"13.77.64.0", "13.77.255.255"}, //49,152
|
|
{"13.78.128.0", "13.78.255.255"}, //32,768
|
|
{"13.82.0.0", "13.86.255.255"}, //327,680
|
|
{"13.87.127.0", "13.88.199.255"}, //84,224
|
|
{"13.89.0.0", "13.92.255.255"}, //262,144
|
|
{"13.93.128.0", "13.93.255.255"}, //32,768
|
|
{"13.96.0.0", "13.103.255.255"}, //524,288
|
|
{"13.104.1.0", "13.104.41.255"}, //10,496
|
|
{"13.105.204.0", "13.105.255.255"}, //13,312
|
|
{"13.107.55.0", "13.107.136.255"}, //20,992
|
|
{"13.107.141.0", "13.107.197.255"}, //14,592
|
|
{"13.107.255.0", "13.111.255.255"}, //262,400
|
|
{"13.116.0.0", "13.120.63.255"}, //278,528
|
|
{"13.120.128.0", "13.121.64.255"}, //49,408
|
|
{"13.121.128.0", "13.122.63.255"}, //49,152
|
|
{"13.122.128.0", "13.123.255.255"}, //98,304
|
|
{"13.128.0.0", "13.199.255.255"}, //4,718,592
|
|
{"13.216.0.0", "13.224.15.255"}, //528,384
|
|
{"13.226.9.0", "13.226.56.255"}, //12,288
|
|
{"13.226.176.0", "13.226.243.255"}, //17,408
|
|
{"13.240.0.0", "13.243.255.255"}, //262,144
|
|
{"13.248.128.0", "13.248.255.255"}, //32,768
|
|
{"13.249.34.0", "13.249.143.255"}, //28,160
|
|
{"13.249.176.0", "13.249.240.255"}, //16,640
|
|
{"13.252.0.0", "13.255.255.255"}, //262,144
|
|
{"15.0.0.0", "15.106.75.255"}, //6,966,272
|
|
{"15.106.77.0", "15.109.211.255"}, //231,168
|
|
{"15.109.213.0", "15.113.77.255"}, //227,584
|
|
{"15.113.79.0", "15.114.96.255"}, //70,144
|
|
{"15.114.98.0", "15.118.101.255"}, //263,168
|
|
{"15.118.103.0", "15.119.207.255"}, //92,416
|
|
{"15.119.209.0", "15.122.23.255"}, //149,248
|
|
{"15.122.25.0", "15.124.124.255"}, //156,672
|
|
{"15.124.128.0", "15.127.94.255"}, //188,160
|
|
{"15.127.98.0", "15.145.19.255"}, //1,159,680
|
|
{"15.145.24.0", "15.151.255.255"}, //452,608
|
|
{"15.153.0.0", "15.155.255.255"}, //196,608
|
|
{"15.158.192.0", "15.159.255.255"}, //81,920
|
|
{"15.162.0.0", "15.163.255.255"}, //131,072
|
|
{"15.166.0.0", "15.167.255.255"}, //131,072
|
|
{"15.169.0.0", "15.177.23.255"}, //530,432
|
|
{"15.177.101.0", "15.183.255.255"}, //432,896
|
|
{"15.186.0.0", "15.187.255.255"}, //131,072
|
|
{"15.189.0.0", "15.189.255.255"}, //65,536
|
|
{"15.190.64.0", "15.192.255.255"}, //180,224
|
|
{"15.193.11.0", "15.195.184.255"}, //175,616
|
|
{"15.195.186.0", "15.205.255.255"}, //673,280
|
|
{"15.208.0.0", "15.219.200.255"}, //772,352
|
|
{"15.219.202.0", "15.220.43.255"}, //25,088
|
|
{"15.221.54.0", "15.221.127.255"}, //18,944
|
|
{"15.221.153.0", "15.221.255.255"}, //26,368
|
|
{"15.224.0.0", "15.227.255.255"}, //262,144
|
|
{"15.231.0.0", "15.234.255.255"}, //262,144
|
|
{"15.238.0.0", "15.247.255.255"}, //655,360
|
|
{"15.248.72.0", "16.0.89.255"}, //528,896
|
|
}
|
|
|
|
// 获取真实有效的随机IP
|
|
func GetRandomIP() string {
|
|
seed := time.Now().UnixNano()
|
|
rng := rand.New(rand.NewSource(seed))
|
|
|
|
// 生成随机索引
|
|
randomIndex := rng.Intn(len(IP_RANGE))
|
|
|
|
// 获取随机 IP 地址范围
|
|
startIP := IP_RANGE[randomIndex][0]
|
|
endIP := IP_RANGE[randomIndex][1]
|
|
|
|
// 将起始 IP 地址转换为整数形式
|
|
startIPInt := ipToUint32(net.ParseIP(startIP))
|
|
// 将结束 IP 地址转换为整数形式
|
|
endIPInt := ipToUint32(net.ParseIP(endIP))
|
|
|
|
// 生成随机 IP 地址
|
|
randomIPInt := rng.Uint32()%(endIPInt-startIPInt+1) + startIPInt
|
|
randomIP := uint32ToIP(randomIPInt)
|
|
|
|
return randomIP
|
|
}
|
|
|
|
// 将 IP 地址转换为 uint32
|
|
func ipToUint32(ip net.IP) uint32 {
|
|
ip = ip.To4()
|
|
var result uint32
|
|
result += uint32(ip[0]) << 24
|
|
result += uint32(ip[1]) << 16
|
|
result += uint32(ip[2]) << 8
|
|
result += uint32(ip[3])
|
|
return result
|
|
}
|
|
|
|
// 将 uint32 转换为 IP 地址
|
|
func uint32ToIP(intIP uint32) string {
|
|
ip := fmt.Sprintf("%d.%d.%d.%d", byte(intIP>>24), byte(intIP>>16), byte(intIP>>8), byte(intIP))
|
|
return ip
|
|
}
|