mirror of https://github.com/v2ray/v2ray-core
				
				
				
			remove chinaips
							parent
							
								
									541924dc88
								
							
						
					
					
						commit
						eb8f11c512
					
				
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							|  | @ -1,3 +0,0 @@ | |||
| package geoip | ||||
| 
 | ||||
| //go:generate go run geoip_gen.go
 | ||||
|  | @ -1,55 +0,0 @@ | |||
| package geoip | ||||
| 
 | ||||
| import proto "github.com/golang/protobuf/proto" | ||||
| import fmt "fmt" | ||||
| import math "math" | ||||
| import v2ray_core_app_router "v2ray.com/core/app/router" | ||||
| 
 | ||||
| // Reference imports to suppress errors if they are not otherwise used.
 | ||||
| var _ = proto.Marshal | ||||
| var _ = fmt.Errorf | ||||
| var _ = math.Inf | ||||
| 
 | ||||
| // This is a compile-time assertion to ensure that this generated file
 | ||||
| // is compatible with the proto package it is being compiled against.
 | ||||
| // A compilation error at this line likely means your copy of the
 | ||||
| // proto package needs to be updated.
 | ||||
| const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package
 | ||||
| 
 | ||||
| type CountryIPRange struct { | ||||
| 	Ips []*v2ray_core_app_router.CIDR `protobuf:"bytes,1,rep,name=ips" json:"ips,omitempty"` | ||||
| } | ||||
| 
 | ||||
| func (m *CountryIPRange) Reset()                    { *m = CountryIPRange{} } | ||||
| func (m *CountryIPRange) String() string            { return proto.CompactTextString(m) } | ||||
| func (*CountryIPRange) ProtoMessage()               {} | ||||
| func (*CountryIPRange) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } | ||||
| 
 | ||||
| func (m *CountryIPRange) GetIps() []*v2ray_core_app_router.CIDR { | ||||
| 	if m != nil { | ||||
| 		return m.Ips | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func init() { | ||||
| 	proto.RegisterType((*CountryIPRange)(nil), "v2ray.core.tools.geoip.CountryIPRange") | ||||
| } | ||||
| 
 | ||||
| func init() { proto.RegisterFile("v2ray.com/core/tools/geoip/geoip.proto", fileDescriptor0) } | ||||
| 
 | ||||
| var fileDescriptor0 = []byte{ | ||||
| 	// 184 bytes of a gzipped FileDescriptorProto
 | ||||
| 	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x2b, 0x33, 0x2a, 0x4a, | ||||
| 	0xac, 0xd4, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xce, 0x2f, 0x4a, 0xd5, 0x2f, 0xc9, 0xcf, 0xcf, 0x29, | ||||
| 	0xd6, 0x4f, 0x4f, 0xcd, 0xcf, 0x2c, 0x80, 0x90, 0x7a, 0x05, 0x45, 0xf9, 0x25, 0xf9, 0x42, 0x62, | ||||
| 	0x30, 0x75, 0x45, 0xa9, 0x7a, 0x60, 0x35, 0x7a, 0x60, 0x59, 0x29, 0x74, 0xfd, 0x89, 0x05, 0x05, | ||||
| 	0xfa, 0x45, 0xf9, 0xa5, 0x25, 0xa9, 0x45, 0xfa, 0xc9, 0xf9, 0x79, 0x69, 0x99, 0xe9, 0x10, 0xfd, | ||||
| 	0x4a, 0xf6, 0x5c, 0x7c, 0xce, 0xf9, 0xa5, 0x79, 0x25, 0x45, 0x95, 0x9e, 0x01, 0x41, 0x89, 0x79, | ||||
| 	0xe9, 0xa9, 0x42, 0xba, 0x5c, 0xcc, 0x99, 0x05, 0xc5, 0x12, 0x8c, 0x0a, 0xcc, 0x1a, 0xdc, 0x46, | ||||
| 	0xd2, 0x7a, 0x48, 0xe6, 0x27, 0x16, 0x14, 0xe8, 0x41, 0xcc, 0xd0, 0x73, 0xf6, 0x74, 0x09, 0x0a, | ||||
| 	0x02, 0xa9, 0x73, 0xb2, 0xe3, 0x92, 0x4a, 0xce, 0xcf, 0xd5, 0xc3, 0xee, 0x8c, 0x00, 0xc6, 0x28, | ||||
| 	0x56, 0x30, 0x63, 0x15, 0x93, 0x58, 0x98, 0x51, 0x50, 0x62, 0xa5, 0x9e, 0x33, 0x48, 0x45, 0x08, | ||||
| 	0x58, 0x85, 0x3b, 0x48, 0x22, 0x89, 0x0d, 0xec, 0x0e, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, | ||||
| 	0xe5, 0xf7, 0xf0, 0xf6, 0xf1, 0x00, 0x00, 0x00, | ||||
| } | ||||
|  | @ -1,13 +0,0 @@ | |||
| syntax = "proto3"; | ||||
| 
 | ||||
| package v2ray.core.tools.geoip; | ||||
| option csharp_namespace = "V2Ray.Core.Tools.Geoip"; | ||||
| option go_package = "geoip"; | ||||
| option java_package = "com.v2ray.core.tools.geoip"; | ||||
| option java_multiple_files = true; | ||||
| 
 | ||||
| import "v2ray.com/core/app/router/config.proto"; | ||||
| 
 | ||||
| message CountryIPRange { | ||||
|   repeated v2ray.core.app.router.CIDR ips = 1; | ||||
| } | ||||
|  | @ -1,92 +0,0 @@ | |||
| // +build generate
 | ||||
| 
 | ||||
| package main | ||||
| 
 | ||||
| import ( | ||||
| 	"bufio" | ||||
| 	"fmt" | ||||
| 	"log" | ||||
| 	"math" | ||||
| 	"net" | ||||
| 	"net/http" | ||||
| 	"os" | ||||
| 	"strconv" | ||||
| 	"strings" | ||||
| 
 | ||||
| 	"v2ray.com/core/app/router" | ||||
| 	"v2ray.com/core/common" | ||||
| 	"v2ray.com/core/common/errors" | ||||
| 	"v2ray.com/core/tools/geoip" | ||||
| 
 | ||||
| 	"github.com/golang/protobuf/proto" | ||||
| ) | ||||
| 
 | ||||
| const ( | ||||
| 	apnicFile = "http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest" | ||||
| ) | ||||
| 
 | ||||
| func main() { | ||||
| 	resp, err := http.Get(apnicFile) | ||||
| 	common.Must(err) | ||||
| 	if resp.StatusCode != 200 { | ||||
| 		panic(errors.New("unexpected status ", resp.StatusCode)) | ||||
| 	} | ||||
| 	defer resp.Body.Close() | ||||
| 	scanner := bufio.NewScanner(resp.Body) | ||||
| 
 | ||||
| 	ips := &geoip.CountryIPRange{ | ||||
| 		Ips: make([]*router.CIDR, 0, 8192), | ||||
| 	} | ||||
| 	for scanner.Scan() { | ||||
| 		line := scanner.Text() | ||||
| 		line = strings.TrimSpace(line) | ||||
| 		parts := strings.Split(line, "|") | ||||
| 		if len(parts) < 5 { | ||||
| 			continue | ||||
| 		} | ||||
| 		if strings.ToLower(parts[1]) != "cn" || strings.ToLower(parts[2]) != "ipv4" { | ||||
| 			continue | ||||
| 		} | ||||
| 		ip := parts[3] | ||||
| 		count, err := strconv.Atoi(parts[4]) | ||||
| 		if err != nil { | ||||
| 			continue | ||||
| 		} | ||||
| 		mask := uint32(math.Floor(math.Log2(float64(count)) + 0.5)) | ||||
| 		ipBytes := net.ParseIP(ip) | ||||
| 		if len(ipBytes) == 0 { | ||||
| 			panic("Invalid IP " + ip) | ||||
| 		} | ||||
| 		ips.Ips = append(ips.Ips, &router.CIDR{ | ||||
| 			Ip:     []byte(ipBytes)[12:16], | ||||
| 			Prefix: 32 - mask, | ||||
| 		}) | ||||
| 	} | ||||
| 
 | ||||
| 	ipbytes, err := proto.Marshal(ips) | ||||
| 	if err != nil { | ||||
| 		log.Fatalf("Failed to marshal country IPs: %v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	file, err := os.OpenFile("geoip.generated.go", os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0644) | ||||
| 	if err != nil { | ||||
| 		log.Fatalf("Failed to generate geoip_data.go: %v", err) | ||||
| 	} | ||||
| 	defer file.Close() | ||||
| 
 | ||||
| 	fmt.Fprintln(file, "package geoip") | ||||
| 
 | ||||
| 	fmt.Fprintln(file, "var ChinaIPs = "+formatArray(ipbytes)) | ||||
| } | ||||
| 
 | ||||
| func formatArray(a []byte) string { | ||||
| 	r := "[]byte{" | ||||
| 	for idx, val := range a { | ||||
| 		if idx > 0 { | ||||
| 			r += "," | ||||
| 		} | ||||
| 		r += fmt.Sprintf("%d", val) | ||||
| 	} | ||||
| 	r += "}" | ||||
| 	return r | ||||
| } | ||||
		Loading…
	
		Reference in New Issue
	
	 Darien Raymond
						Darien Raymond