โปรเจ็กต์นี้จะสร้างไฟล์ GeoIP ในรูปแบบต่างๆ โดยอัตโนมัติทุกวันพฤหัสบดี และยังมีเครื่องมือ command line interface (CLI) สำหรับผู้ใช้ในการปรับแต่งไฟล์ GeoIP รวมถึงแต่ไม่จำกัดเพียงไฟล์รูปแบบ V2Ray dat
geoip.dat
, ไฟล์รูปแบบ MaxMind mmdb
Country.mmdb
, ไฟล์รูปแบบ sing -box SRS
, ไฟล์รูปแบบ mihomo MRS
, ชุดกฎ Clash และชุดกฎ Surge
โปรเจ็กต์นี้จะเผยแพร่ไฟล์ GeoIP รูปแบบต่างๆ โดยอัตโนมัติทุกวันพฤหัสบดี และมีเครื่องมืออินเทอร์เฟซบรรทัดคำสั่ง (CLI) สำหรับผู้ใช้ในการปรับแต่งไฟล์ GeoIP ของตนเอง ซึ่งรวมถึงแต่ไม่จำกัดเพียงไฟล์รูปแบบ V2Ray dat
geoip.dat
, ไฟล์รูปแบบ MaxMind mmdb
Country.mmdb
, ไฟล์รูปแบบ SRS
แบบ sing-box, ไฟล์รูปแบบ mihomo MRS
, ไฟล์ชุดกฎ Clash และไฟล์ชุดกฎ Surge
ตามค่าเริ่มต้น โปรเจ็กต์นี้ใช้ข้อมูล CSV ประเทศ MaxMind GeoLite2 เพื่อสร้างไฟล์ GeoIP สำหรับแต่ละประเทศและภูมิภาค สำหรับหมวดหมู่ geoip ของประเทศและภูมิภาคที่มีอยู่ทั้งหมด (เช่น geoip:cn
ตัวอักษรภาษาอังกฤษสองตัวแสดงถึงประเทศและภูมิภาค) โปรดดู: https://www.iban.com/country-codes
นอกจากนี้ โครงการนี้ได้แก้ไขและเพิ่มข้อมูล GeoIP อย่างเป็นทางการของ MaxMind ใหม่:
ข้อมูลที่อยู่ IPv4 ของจีนแผ่นดินใหญ่รวม IPIP.net และ @gaoyifan/china-operator-ip
ข้อมูลที่อยู่ IPv6 ของจีนแผ่นดินใหญ่รวม MaxMind GeoLite2 และ @gaoyifan/china-operator-ip
หมวดหมู่ใหม่ (สะดวกสำหรับผู้ใช้ที่มีความต้องการพิเศษ):
geoip:cloudflare
( GEOIP,CLOUDFLARE
)
geoip:cloudfront
( GEOIP,CLOUDFRONT
)
geoip:facebook
( GEOIP,FACEBOOK
)
geoip:fastly
( GEOIP,FASTLY
)
geoip:google
( GEOIP,GOOGLE
)
geoip:netflix
( GEOIP,NETFLIX
)
geoip:telegram
( GEOIP,TELEGRAM
)
geoip:twitter
( GEOIP,TWITTER
)
geoip:tor
( GEOIP,TOR
)
สำหรับไฟล์ GeoIP ทั้งหมดที่เผยแพร่โดยโปรเจ็กต์นี้ โปรดตรวจสอบสาขาที่เผยแพร่ ต่อไปนี้คือที่อยู่ดาวน์โหลดสำหรับไฟล์ GeoIP บางรูปแบบ:
หากคุณไม่สามารถเข้าถึงชื่อโดเมน
raw.githubusercontent.com
คุณสามารถใช้ที่อยู่ที่สองcdn.jsdelivr.net
หากไม่สามารถเข้าถึงชื่อโดเมนcdn.jsdelivr.net
คุณสามารถแทนที่ด้วยfastly.jsdelivr.net
*.sha256sum เป็นไฟล์การยืนยัน
ใช้ได้กับ V2Ray, Xray-core, mihomo, ฮิสทีเรีย, Trojan-Go
ไฟล์รูปแบบ dat นี้ไม่สามารถใช้กับ Nginx ได้
geoip.dat :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/geoip.dat
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/geoip.dat
geoip.dat.sha256sum :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/geoip.dat.sha256sum
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/geoip.dat.sha256sum
geoip-only-cn-private.dat (GeoIP เวอร์ชัน Lite มีเฉพาะ geoip:cn
และ geoip:private
):
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/geoip-only-cn-private.dat
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/geoip-only-cn-private.dat
geoip-only-cn-private.dat.sha256sum :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/geoip-only-cn-private.dat.sha256sum
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/geoip-only-cn-private.dat.sha256sum
geoip-asn.dat (GeoIP เวอร์ชัน Lite รวมเฉพาะหมวดหมู่ใหม่ข้างต้น):
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/geoip-asn.dat
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/geoip-asn.dat
geoip-asn.dat.sha256sum :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/geoip-asn.dat.sha256sum
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/geoip-asn.dat.sha256sum
cn.dat (GeoIP เวอร์ชัน Lite มีเฉพาะ geoip:cn
):
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/cn.dat
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/cn.dat
cn.dat.sha256sum :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/cn.dat.sha256sum
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/cn.dat.sha256sum
private.dat (GeoIP เวอร์ชัน Lite มีเฉพาะ geoip:private
):
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/private.dat
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/private.dat
private.dat.sha256sum :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/private.dat.sha256sum
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/private.dat.sha256sum
สำหรับไฟล์รูปแบบ dat ใน ทุกประเทศ/ภูมิภาค/หมวดหมู่ใหม่ โปรดตรวจสอบไดเรกทอรี dat ใต้สาขา release
ของโปรเจ็กต์นี้
คุณต้องดาวน์โหลดไฟล์ฟอร์แมต .dat
ก่อนแล้ววางลงในไดเร็กทอรีโปรแกรม
"การกำหนดเส้นทาง": { "กฎ": [ { "type": "field", "outboundTag": "Direct", "ip": ["geoip:cn", "geoip:private", "ext:cn.dat:cn", "ext:private.dat" :private","ext:geoip-only-cn-private.dat:cn","ext:geoip-only-cn-private.dat:private" ] - { "type": "field", "outboundTag": "พร็อกซี", "ip": ["geoip:us","geoip:jp","geoip:facebook","geoip:telegram","ext:geoip -asn.dat:facebook","ext:geoip-asn.dat:telegram" ] - - -
โหมด geodata: truegeox-url: geoip: "https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/geoip.dat"
คุณต้องดาวน์โหลดไฟล์รูปแบบ .dat
ก่อน และวางลงในไดเร็กทอรีโปรแกรมฮิสทีเรีย
direct(geoip:cn) proxy(geoip:telegram) proxy(geoip:us)
คุณต้องดาวน์โหลดไฟล์รูปแบบ .dat
ก่อนแล้ววางลงในไดเร็กทอรีโปรแกรม Trojan-Go
"เราเตอร์": { "เปิดใช้งาน": จริง "บายพาส": ["geoip:cn"], "พรอกซี": ["geoip:telegram", "geoip:us"], "บล็อก": ["geoip:jp "], "default_policy": "พร็อกซี", "geoip": "./geoip.dat"}
MaxMind เวอร์ชันอย่างเป็นทางการ ของประเทศ/ภูมิภาค ประเภทไฟล์ mmdb:
เหมาะสำหรับ Clash, mihomo, Shadowrocket, Quantumult X, Surge, Leaf
ใช้ได้กับ Nginx โดยจะต้องใช้กับโมดูล ngx_http_geoip2_module
GeoLite2-Country.mmdb :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/GeoLite2-Country.mmdb
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/GeoLite2-Country.mmdb
GeoLite2-Country.mmdb.sha256sum :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/GeoLite2-Country.mmdb.sha256sum
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/GeoLite2-Country.mmdb.sha256sum
MaxMind เวอร์ชันอย่างเป็นทางการประเภท ASN ไฟล์ mmdb:
เหมาะสำหรับ mihomo, Shadowrocket, Surge
GeoLite2-ASN.mmdb :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/GeoLite2-ASN.mmdb
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/GeoLite2-ASN.mmdb
GeoLite2-ASN.mmdb.sha256sum :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/GeoLite2-ASN.mmdb.sha256sum
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/GeoLite2-ASN.mmdb.sha256sum
ไฟล์ mmdb ประเภท ประเทศ/ภูมิภาค ที่สร้างโดยโปรเจ็กต์นี้:
เหมาะสำหรับ Clash, mihomo, Shadowrocket, Quantumult X, Surge, Leaf
ใช้ได้กับ Nginx โดยจะต้องใช้กับโมดูล ngx_http_geoip2_module
หมวด หมู่ประเทศ/ภูมิภาค ยังคงรักษาฟิลด์ทั้งหมดใน
Continent
และCountry
หมวดหมู่ใหม่ และ หมวดหมู่ geoip:private จะคงไว้เฉพาะiso_code
(รหัสประเทศ/ภูมิภาคที่แสดงด้วยตัวอักษรภาษาอังกฤษสองตัว) ในCountry
สำหรับช่องที่สมบูรณ์ของไฟล์รูปแบบ MMDB ของประเทศอย่างเป็นทางการของ Maxmind โปรดดูโค้ด
Country-without-asn.mmdb (GeoIP เวอร์ชันดั้งเดิมรวมเฉพาะหมวดหมู่ประเทศ/ภูมิภาคเท่านั้น และไม่รวมหมวดหมู่ใหม่ที่กล่าวถึงข้างต้น ขอแนะนำให้ใช้ก่อน):
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country-without-asn.mmdb
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/Country-without-asn.mmdb
ประเทศที่ไม่มี-asn.mmdb.sha256sum :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country-without-asn.mmdb.sha256sum
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/Country-without-asn.mmdb.sha256sum
Country.mmdb (GeoIP เวอร์ชันปรับปรุง รวมถึงหมวดหมู่ประเทศ/ภูมิภาค ตลอดจนหมวดหมู่ใหม่ที่กล่าวถึงข้างต้น อย่างไรก็ตาม เนื่องจากข้อจำกัดของรูปแบบ MaxMind mmdb ข้อมูลที่อยู่ IP ของหมวดหมู่ประเทศ/ภูมิภาคบางประเภทจึงไม่ถูกต้องเท่ากับ ดังกล่าวข้างต้น Country-without-asn.mmdb ):
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country.mmdb
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/Country.mmdb
Country.mmdb.sha256sum :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country.mmdb.sha256sum
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/Country.mmdb.sha256sum
Country-only-cn-private.mmdb (GeoIP เวอร์ชัน Lite มีเฉพาะ GEOIP,CN
และ GEOIP,PRIVATE
):
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country-only-cn-private.mmdb
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/Country-only-cn-private.mmdb
ประเทศเท่านั้น cn-private.mmdb.sha256sum :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country-only-cn-private.mmdb.sha256sum
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/Country-only-cn-private.mmdb.sha256sum
Country-asn.mmdb (GeoIP เวอร์ชัน Lite รวมเฉพาะหมวดหมู่ใหม่ข้างต้นเท่านั้น):
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country-asn.mmdb
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/Country-asn.mmdb
ประเทศ-asn.mmdb.sha256sum :
https://raw.githubusercontent.com/Loyalsoldier/geoip/release/Country-asn.mmdb.sha256sum
https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/Country-asn.mmdb.sha256sum
คุณต้องดาวน์โหลดไฟล์รูปแบบ .mmdb
ก่อน ตั้งชื่อเป็น Country.mmdb
และวางไว้ในไดเร็กทอรีโปรแกรม Clash
กฎ: - GEOIP, ส่วนตัว, นโยบาย, ไม่ได้รับการแก้ไข - GEOIP, FACEBOOK, นโยบาย - GEOIP, CN, นโยบาย, ไม่ได้รับการแก้ไข
โหมด geodata: truegeox-url: mmdb: "https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/Country.mmdb" asn: "https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/GeoLite2-ASN.mmdb"
ที่อยู่การดาวน์โหลดจะต้องกรอกในการตั้งค่าของ Shadowrocket
[Rule]
GEOIP,PRIVATE,DIRECT
GEOIP,FACEBOOK,PROXY
GEOIP,CN,DIRECT
ที่อยู่การดาวน์โหลดจะต้องกรอกในการตั้งค่าของ Quantumult X
[filter_local]
GEOIP,PRIVATE,DIRECT
GEOIP,FACEBOOK,PROXY
GEOIP,CN,DIRECT
ที่อยู่การดาวน์โหลดจะต้องกรอกในการตั้งค่า Surge
[Rule]
GEOIP,PRIVATE,policy,no-resolve
GEOIP,FACEBOOK,policy
GEOIP,CN,policy,no-resolve
เหมาะสำหรับตู้ร้องเพลง.
โปรดตรวจสอบไดเร็กทอรี srs ใต้สาขา release
ของโปรเจ็กต์นี้
"เส้นทาง": { "กฎ": [ { "rule_set": "geoip-cn", "ขาออก": "โดยตรง"}, { "rule_set": "geoip-us", "ขาออก": "บล็อก"} ], "rule_set": [ { "tag": "geoip-cn", "type": "remote", "format": "binary", "url": "https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/ srs/cn.srs"}, { "tag": "geoip-us", "type": "remote", "format": "binary", "url": "https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/ srs/us.srs"} - -
เหมาะสำหรับมิโฮโมะ
โปรดตรวจสอบไดเร็กทอรี mrs ใต้สาขา release
ของโปรเจ็กต์นี้
ผู้ให้บริการกฎ: cn-cidr:type: httpbehavior: ipcidrformat: mrsurl: "https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/mrs/cn.mrs" เส้นทาง: ./mrs/geoip/cn .mrsinterval: 86400 google-cidr:type: httpbehavior: ipcidrformat: mrsurl: "https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/mrs/google.mrs" เส้นทาง: ./mrs/geoip/google.mrsinterval: 86400rules : : - ชุดกฎ, cn-cidr, โดยตรง - RULE-SET, google-cidr, PROXY, ไม่ได้รับการแก้ไข
ใช้ได้กับ Clash Premium, mihomo
โปรดตรวจสอบไดเรกทอรีข้อขัดข้องภายใต้สาขา release
ของโปรเจ็กต์นี้
ผู้ให้บริการกฎ: cn-cidr:type: httpbehavior: ipcidrformat: yamlurl: "https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/clash/ipcidr/cn.txt" เส้นทาง: ./ruleset/ipcidr /cn.yamlinterval: 86400 telegram-cidr: ประเภท: http พฤติกรรม: ipcidrformat: yamlurl: "https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/clash/ipcidr/telegram.txt" เส้นทาง: ./ruleset/ipcidr/telegram.yamlinterval :86400กฎ: - ชุดกฎ, cn-cidr, โดยตรง - RULE-SET, telegram-cidr, PROXY, ไม่ได้รับการแก้ไข
เหมาะสำหรับไฟกระชาก
โปรดตรวจสอบไดเร็กทอรีการกระชากภายใต้สาขา release
ของโปรเจ็กต์นี้
[Rule]
RULE-SET,https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/surge/us.txt,REJECT
RULE-SET,https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/surge/cn.txt,DIRECT
RULE-SET,https://cdn.jsdelivr.net/gh/Loyalsoldier/geoip@release/surge/telegram.txt,PROXY,no-resolve
โปรดตรวจสอบไดเร็กทอรีข้อความภายใต้สาขา release
ของโปรเจ็กต์นี้
allow
และ deny
ไฟล์ โปรดตรวจสอบไดเร็กทอรี nginx ภายใต้สาขา release
ของโปรเจ็กต์นี้
ไฟล์ GeoIP สามารถปรับแต่งได้ด้วยวิธีต่อไปนี้:
การสร้างออนไลน์ : หลังจาก Fork คลังสินค้านี้ ให้แก้ไขไฟล์การกำหนดค่า config.json
และ GitHub Workflow .github/workflows/build.yml
ในคลังสินค้าของคุณเอง
รุ่นท้องถิ่น :
ติดตั้ง Golang และ Git
ดึงรหัสโครงการ: git clone https://github.com/Loyalsoldier/geoip.git
ป้อนไดเรกทอรีรากของโครงการ: cd geoip
แก้ไขไฟล์การกำหนดค่า config.json
เรียกใช้โค้ด: go run ./ convert -c ./config.json
คำแนะนำพิเศษ:
การสร้างออนไลน์ : Fork หลังจากโปรเจ็กต์นี้ หากคุณต้องการใช้ไฟล์ข้อมูลอย่างเป็นทางการของ MaxMind GeoLite2 คุณจะต้องเพิ่มไฟล์ชื่อ MAXMIND_GEOLITE2_LICENSE ลงในหน้าแท็บ [การกระทำ] ใต้ [ความลับและตัวแปร] ที่แถบด้านข้างซ้ายของ [การตั้งค่า] หน้าข้อมูลลับคลังสินค้าของคุณ มิฉะนั้น GitHub Actions จะไม่สามารถทำงานได้ ค่าของความลับนี้คือรหัสลิขสิทธิ์ของบัญชี MaxMind จะต้องสร้างขึ้นใน [ จัดการรหัสใบอนุญาต ] ในแถบด้านซ้ายของ หน้าการจัดการบัญชีส่วนบุคคล หลังจาก ลงทะเบียนบัญชี MaxMind
การสร้างท้องถิ่น : หากคุณต้องการใช้ไฟล์ข้อมูล GeoLite2 อย่างเป็นทางการของ MaxMind คุณจะต้องดาวน์โหลดจาก MaxMind ล่วงหน้า หรือดาวน์โหลดจากสาขาที่วางจำหน่ายของโปรเจ็กต์นี้ (ชื่อไฟล์ขึ้นต้นด้วย GeoLite2
) และแตกไฟล์ลงในไดเร็กทอรี ชื่อ geolite2
โครงการนี้มีสองแนวคิด: input
และ output
input
หมายถึงแหล่งข้อมูลและรูปแบบข้อมูลเข้า และ output
หมายถึงปลายทางข้อมูลและรูปแบบข้อมูลออก หน้าที่ของ CLI คือการรวบรวมแหล่งข้อมูลทั้งหมดที่ผู้ใช้ให้มาโดยการอ่านตัวเลือกในไฟล์คอนฟิกูเรชัน ลบรายการที่ซ้ำกัน แปลงเป็นรูปแบบเป้าหมาย และส่งออกเป็นไฟล์
แนวคิดทั้งสองนี้มีความโดดเด่น: input
และ output
input
คือแหล่งข้อมูลและรูปแบบอินพุต ในขณะที่ output
เป็นปลายทางของข้อมูลที่แปลงและรูปแบบเอาต์พุต สิ่งที่ CLI ทำคือการรวบรวมข้อมูลรูปแบบอินพุตทั้งหมด จากนั้นจึงแปลง เป็นรูปแบบเอาต์พุตและเขียนลงในไฟล์ GeoIP โดยใช้ตัวเลือกในไฟล์ปรับแต่ง
สำหรับตัวเลือกการกำหนดค่าที่แต่ละรูปแบบรองรับ โปรดดูไฟล์ configuration.md
ของโปรเจ็กต์นี้
รูปแบบ input
ที่รองรับ:
text : ข้อความธรรมดา IP และ CIDR (เช่น 1.1.1.1
หรือ 1.0.0.0/24
)
stdin : รับ IP ข้อความธรรมดาและ CIDR จากอินพุตมาตรฐาน (เช่น 1.1.1.1
หรือ 1.0.0.0/24
)
ส่วนตัว : LAN และ CIDR เครือข่ายส่วนตัว (เช่น 192.168.0.0/16
และ 127.0.0.0/8
)
เครื่องตัด : ใช้สำหรับตัดข้อมูลในขั้นตอนก่อนหน้า
json : รูปแบบข้อมูล JSON
v2rayGeoIPDat : รูปแบบข้อมูล V2Ray GeoIP dat ( geoip.dat
)
maxmindMMDB : รูปแบบข้อมูล mmdb ประเทศ MaxMind GeoLite2 ( GeoLite2-Country.mmdb
)
maxmindGeoLite2ASNCSV : รูปแบบข้อมูล MaxMind GeoLite2 ASN CSV ( GeoLite2-ASN-CSV.zip
)
maxmindGeoLite2CountryCSV : รูปแบบข้อมูล CSV ประเทศ MaxMind GeoLite2 ( GeoLite2-Country-CSV.zip
)
dbipCountryMMDB : รูปแบบข้อมูล mmdb ประเทศ DB-IP ( dbip-country-lite.mmdb
)
ipinfoCountryMMDB : รูปแบบข้อมูล mmdb ประเทศ IPInfo ( country.mmdb
)
mihomoMRS : รูปแบบข้อมูล mihomo MRS ( geoip-cn.mrs
)
singboxSRS : รูปแบบข้อมูล SRS ของ sing-box ( geoip-cn.srs
)
clashRuleSetClassical : Clash RuleSet ประเภทคลาสสิก
clashRuleSet : Clash RuleSet ประเภท ipcidr
SurgeRuleSet : SurgeRuleSet
รูป output
ที่รองรับ:
text : ข้อความธรรมดา CIDR (เช่น 1.0.0.0/24
)
stdout : เอาต์พุตข้อความธรรมดา CIDR ไปยังเอาต์พุตมาตรฐาน (ตัวอย่าง: 1.0.0.0/24
)
lookup : ค้นหา IP หรือ CIDR ที่ระบุจากรายการที่ระบุ
v2rayGeoIPDat : รูปแบบข้อมูล V2Ray GeoIP dat ( geoip.dat
)
maxmindMMDB : รูปแบบข้อมูล mmdb ประเทศ MaxMind GeoLite2 ( GeoLite2-Country.mmdb
)
dbipCountryMMDB : รูปแบบข้อมูล mmdb ประเทศ DB-IP ( dbip-country-lite.mmdb
)
ipinfoCountryMMDB : รูปแบบข้อมูล mmdb ประเทศ IPInfo ( country.mmdb
)
mihomoMRS : รูปแบบข้อมูล mihomo MRS ( geoip-cn.mrs
)
singboxSRS : รูปแบบข้อมูล SRS ของ sing-box ( geoip-cn.srs
)
clashRuleSetClassical : Clash RuleSet ประเภทคลาสสิก
clashRuleSet : Clash RuleSet ประเภท ipcidr
SurgeRuleSet : SurgeRuleSet
เนื่องจากข้อจำกัดของรูปแบบไฟล์ mmdb ของ MaxMind, DB-IP และ IPInfo เมื่อข้อมูล IP หรือ CIDR ของรายการที่แตกต่างกันมีจุดตัดหรือซ้ำกัน ข้อมูล IP หรือ CIDR ของรายการที่เขียนในภายหลังจะเขียนทับรายการที่เขียนก่อนหน้านี้ รายการข้อมูล ตัวอย่างเช่น IP 1.1.1.1
เป็นของทั้งรายการ AU
และรายการ Cloudflare
หาก Cloudflare
เขียนตามหลัง AU
แสดงว่า IP 1.1.1.1
อยู่ในรายการ Cloudflare
เพื่อให้แน่ใจว่ารายการที่ระบุและรายการที่แก้ไขจะต้องมีข้อมูล IP หรือ CIDR ทั้งหมดที่เป็นของมัน คุณสามารถเพิ่มตัวเลือก overwriteList
ให้กับการกำหนดค่าของรูปแบบเอาต์พุตที่สอดคล้องกัน output
รายการที่ระบุในตัวเลือกนี้จะถูกเขียนเป็นรายการเดียว ทีละรายการสุดท้ายมีลำดับความสำคัญสูงสุด หากตั้งค่าอ็อพชัน wantedList
แล้ว ไม่จำเป็นต้องตั้งค่า overwriteList
รายการที่ระบุใน wantedList
จะถูกเขียนทีละรายการในตอนท้าย โดยรายการสุดท้ายในรายการจะมีลำดับความสำคัญสูงสุด
เครื่องมือ CLI สามารถติดตั้งได้โดยตรงผ่าน go install -v github.com/Loyalsoldier/geoip@latest
ฟังก์ชั่นที่จัดทำโดย CLI มีดังนี้:
รายการรูป input
และ output
ที่รองรับ ( list
)
การแปลงรูปแบบข้อมูล GeoIP ( convert
)
ค้นหาหมวดหมู่ของ IP หรือ CIDR ( lookup
)
การขจัดข้อมูลซ้ำซ้อนและการรวม IP และ CIDR ( merge
)
$ ./geoip geoip เป็นเครื่องมือที่สะดวกในการผสาน แปลง และค้นหา IP และ CIDR จากข้อมูล geoip รูปแบบต่างๆ การใช้งาน: geoip [คำสั่ง] คำสั่งที่ใช้ได้: แปลง แปลงข้อมูล geoip จากรูปแบบหนึ่งไปเป็นอีกรูปแบบหนึ่งโดยใช้ไฟล์ config ช่วยเหลือ ช่วยเหลือเกี่ยวกับคำสั่งใด ๆ รายการ แสดงรายการรูปแบบอินพุตและเอาต์พุตที่มีอยู่ทั้งหมด ค้นหา ค้นหา IP ที่ระบุหรือ CIDR ในรายการที่ระบุ ผสาน รวม IP ข้อความธรรมดาและ CIDR จากอินพุตมาตรฐาน จากนั้นพิมพ์ไปยังเอาต์พุตมาตรฐาน ธง: -h, --help ความช่วยเหลือสำหรับ geoip ใช้ "geoip [command] --help" สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคำสั่ง
input
และ output
ที่รองรับ ( list
)$ ./รายการ geoip รูปแบบอินพุตที่มีอยู่ทั้งหมด: - clashRuleSet (แปลงประเภท ipcidr ของ Clash RuleSet เป็นรูปแบบอื่น) - clashRuleSetClassical (แปลง Clash RuleSet ประเภทคลาสสิกเป็นรูปแบบอื่น (เพียงประมวลผลบรรทัด IP และ CIDR)) - เครื่องตัด (ลบข้อมูลจากขั้นตอนก่อนหน้า) - dbipCountryMMDB (แปลงฐานข้อมูล mmdb ประเทศ DB-IP เป็นรูปแบบอื่น) - ipinfoCountryMMDB (แปลงฐานข้อมูล mmdb ประเทศ IPInfo เป็นรูปแบบอื่น) - json (แปลงข้อมูล JSON เป็นรูปแบบอื่น) - maxmindGeoLite2ASNCSV (แปลงข้อมูล MaxMind GeoLite2 ASN CSV เป็นรูปแบบอื่น) - maxmindGeoLite2CountryCSV (แปลงข้อมูล CSV ประเทศ MaxMind GeoLite2 เป็นรูปแบบอื่น) - maxmindMMDB (แปลงฐานข้อมูล MaxMind mmdb เป็นรูปแบบอื่น) - mihomoMRS (แปลงข้อมูล mihomo MRS เป็นรูปแบบอื่น) - ส่วนตัว (แปลง LAN และ CIDR เครือข่ายส่วนตัวเป็นรูปแบบอื่น) - singboxSRS (แปลงข้อมูล SRS ของ sing-box เป็นรูปแบบอื่น) - stdin (ยอมรับ IP ข้อความธรรมดา & CIDR จากอินพุตมาตรฐาน คั่นด้วยการขึ้นบรรทัดใหม่) -urgeRuleSet (แปลง Surge RuleSet เป็นรูปแบบอื่น (เพียงประมวลผลบรรทัด IP และ CIDR)) - ทดสอบ (แปลง CIDR เฉพาะเป็นรูปแบบอื่น (สำหรับการทดสอบเท่านั้น)) - ข้อความ (แปลง IP ข้อความธรรมดา & CIDR เป็นรูปแบบอื่น) - v2rayGeoIPDat (แปลง V2Ray GeoIP dat เป็นรูปแบบอื่น) รูปแบบเอาต์พุตที่มีอยู่ทั้งหมด: - clashRuleSet (แปลงข้อมูลเป็นประเภท ipcidr ของ Clash RuleSet) - clashRuleSetClassical (แปลงข้อมูลเป็น Clash RuleSet ประเภทคลาสสิก) - dbipCountryMMDB (แปลงข้อมูลเป็นรูปแบบฐานข้อมูล mmdb ประเทศ DB-IP) - ipinfoCountryMMDB (แปลงข้อมูลเป็นรูปแบบฐานข้อมูล mmdb ประเทศ IPInfo) - ค้นหา (ค้นหาระบุ IP หรือ CIDR จากข้อมูลรูปแบบต่างๆ) - maxmindMMDB (แปลงข้อมูลเป็นรูปแบบฐานข้อมูล MaxMind mmdb) - mihomoMRS (แปลงข้อมูลเป็นรูปแบบ mihomo MRS) - singboxSRS (แปลงข้อมูลเป็นรูปแบบ SRS ของ sing-box) - stdout (แปลงข้อมูลเป็นรูปแบบ CIDR ข้อความธรรมดาและส่งออกเป็นเอาต์พุตมาตรฐาน) -urgeRuleSet (แปลงข้อมูลเป็น Surge RuleSet) - ข้อความ (แปลงข้อมูลเป็นรูปแบบ CIDR แบบข้อความธรรมดา) - v2rayGeoIPDat (แปลงข้อมูลเป็นรูปแบบ V2Ray GeoIP dat)
merge
)$ curl -s https://core.telegram.org/resources/cidr.txt | ./geoip ผสาน -t ipv4 91.105.192.0/23 91.108.4.0/22 91.108.8.0/21 91.108.16.0/21 91.108.56.0/22 149.154.160.0/20 185.76.151.0/24
convert
)$ ./geoip แปลง -c config.json 29/08/2021 12:11:35 ✅ [v2rayGeoIPDat] geoip.dat --> เอาต์พุต/dat 29/08/2021 12:11:35 ✅ [v2rayGeoIPDat] geoip-only-cn-private.dat --> เอาต์พุต/dat 29/08/2021 12:11:35 ✅ [v2rayGeoIPDat] geoip-asn.dat --> เอาต์พุต/dat 29/08/2021 12:11:35 ✅ [v2rayGeoIPDat] cn.dat --> เอาต์พุต/dat 29/08/2021 12:11:35 ✅ [v2rayGeoIPDat] private.dat --> เอาต์พุต/dat 29/08/2021 12:11:39 ✅ [maxmindMMDB] Country.mmdb --> เอาต์พุต/maxmind 29/08/2021 12:11:39 ✅ [maxmindMMDB] ประเทศเท่านั้น-cn-private.mmdb --> เอาต์พุต/maxmind 29/08/2021 12:11:39 ✅ [ข้อความ] netflix.txt --> เอาต์พุต/ข้อความ 29/08/2021 12:11:39 ✅ [ข้อความ] telegram.txt --> เอาต์พุต/ข้อความ 29/08/2021 12:11:39 ✅ [ข้อความ] cn.txt --> เอาต์พุต/ข้อความ 29/08/2021 12:11:39 ✅ [ข้อความ] cloudflare.txt --> เอาต์พุต/ข้อความ 29/08/2021 12:11:39 ✅ [ข้อความ] cloudfront.txt --> เอาต์พุต/ข้อความ 29/08/2021 12:11:39 ✅ [ข้อความ] facebook.txt --> เอาต์พุต/ข้อความ 29/08/2021 12:11:39 ✅ [ข้อความ] fastly.txt --> เอาต์พุต/ข้อความ 29/08/2021 12:11:45 ✅ [singboxSRS] netflix.txt --> เอาต์พุต/srs 29/08/2021 12:11:45 ✅ [singboxSRS] telegram.txt --> เอาต์พุต/srs 29/08/2021 12:11:45 ✅ [singboxSRS] cn.txt --> เอาต์พุต/srs 29/08/2021 12:11:45 ✅ [singboxSRS] cloudflare.txt --> เอาต์พุต/srs 29/08/2021 12:11:45 ✅ [singboxSRS] cloudfront.txt --> เอาต์พุต/srs 29/08/2021 12:11:45 ✅ [singboxSRS] facebook.txt --> เอาต์พุต/srs 29/08/2021 12:11:45 ✅ [singboxSRS] fastly.txt --> เอาต์พุต/srs 29/08/2021 12:11:50 ✅ [mihomoMRS] netflix.txt --> เอาต์พุต/mrs 29/08/2021 12:11:50 ✅ [mihomoMRS] telegram.txt --> เอาต์พุต/mrs 29/08/2021 12:11:50 ✅ [mihomoMRS] cn.txt --> เอาต์พุต/mrs 29/08/2021 12:11:50 ✅ [mihomoMRS] cloudflare.txt --> เอาต์พุต/mrs 29/08/2021 12:11:50 ✅ [mihomoMRS] cloudfront.txt --> เอาต์พุต/mrs 29/08/2021 12:11:50 ✅ [mihomoMRS] facebook.txt --> output/mrs 29/08/2021 12:11:50 ✅ [mihomoMRS] fastly.txt --> เอาต์พุต/mrs
lookup
)ผลลัพธ์การส่งคืนที่เป็นไปได้:
สตริงการสืบค้นไม่ใช่ IP หรือ CIDR ที่ถูกต้อง และส่งคืน false
ไม่มี IP หรือ CIDR ที่สอบถามในหมวดหมู่ใด ๆ ให้คืนค่า false
IP หรือ CIDR ที่สอบถามมีอยู่ในหมวดหมู่เดียวในไฟล์บางรูปแบบ:
หากไฟล์รูปแบบมีเพียงหมวดหมู่เดียว ให้คืนค่า true
หากไฟล์รูปแบบมีหลายหมวดหมู่ ให้ส่งคืนชื่อหมวดหมู่ที่ตรงกัน
IP หรือ CIDR ที่สอบถามมีอยู่ในหลายประเภท และชื่อหมวดหมู่ที่คั่นด้วยเครื่องหมายจุลภาคภาษาอังกฤษจะถูกส่งกลับ เช่น au,cloudflare
# ================= โหมดครั้งเดียว ================= ## จากไฟล์ในเครื่องในรูปแบบข้อความ (เฉพาะที่มีเฉพาะ ค้นหา IP จากไฟล์ในเครื่อง (มีเพียงรายการเดียว) ในรูปแบบข้อความ$ ./geoip lookup -f text -u ./cn.txt 1.0.1.1true# ค้นหา IP จากไฟล์ในเครื่อง (มีเพียงรายการเดียว) ในรูปแบบข้อความ$ /geoip lookup -f text -u ./cn.txt 1.0.1.1true# ค้นหา IP จากไฟล์ในเครื่อง (มีเพียงรายการเดียว) ในรูปแบบข้อความ$ ./geoip lookup -f text -u ./cn.txt 2.2.2.2 false# ค้นหา CIDR จากไฟล์ในเครื่อง (มีรายการเดียวเท่านั้น) ในรูปแบบข้อความ$ ./geoip lookup -f text -u ./cn.txt 1.0.1.1/24true# ค้นหา CIDR จากไฟล์ในเครื่อง (มีรายการเดียวเท่านั้น) ในข้อความ format$ ./geoip lookup -f text -u ./cn.txt 1.0.1.1 /23false# ค้นหา IP จาก URL ระยะไกล (มีเพียงรายการเดียว) ในรูปแบบข้อความ$ ./geoip lookup -f text -u https:// example.com/cn.txt 1.0.1.1true# ค้นหา IP จากไฟล์ในเครื่อง (มีเพียงรายการเดียว) ในรูปแบบ v2rayGeoIPDat$ ./geoip lookup -f v2rayGeoIPDat -u ./cn.dat 1.0.1.1true# ค้นหา IP จากท้องถิ่น ไฟล์ (มีหลายรายการ) ในรูปแบบ v2rayGeoIPDat$ ./ geoip lookup -f v2rayGeoIPDat -u ./geoip.dat 1.0.1.1 cn# ค้นหา IP จากไฟล์ในเครื่อง (มีหลายรายการ) ในรูปแบบ v2rayGeoIPDat$ ./geoip lookup -f v2rayGeoIPDat -u ./geoip.dat 1.0 .0.1 au,cloudflare# ค้นหา CIDR จาก URL ระยะไกล (มีหลายรายการ) ในรูปแบบ v2rayGeoIPDat$ ./geoip lookup -f v2rayGeoIPDat -u https://example .com/geoip.dat 1.0.0.1/24 au,cloudflare# ================= โหมด REPL ================= ## จากไฟล์ในเครื่องในรูปแบบข้อความ (เท่านั้น ค้นหา IP หรือ CIDR จากไฟล์ในเครื่อง (มีเพียงรายการเดียว) ในรูปแบบข้อความ$ ./geoip lookup -f text -u ./cn.txt กรอก IP หรือ CIDR (พิมพ์ "exit" เพื่อออก):>> 1.0.1.1true>> 1.0.1.1/24true>> 1.0.1.1/23false>> 2.2.2.2false>> 2.2.2.2/24false>> 300.300 300.300false>> 300.300.300.300/24false>> exit# ค้นหา IP หรือ CIDR จาก URL ระยะไกล (มีเพียงรายการเดียว) ในรูปแบบข้อความ $ ./geoip lookup -f text -u https://example.com/cn.txt กรอก IP หรือ CIDR (พิมพ์ "exit" เพื่อออก):>> 1.0.1.1true>> 1.0.1.1/24true>> 1.0.1.1/23false>> 2.2.2.2false>> 2.2.2.2/24false>> 300.300 300.300false>> 300.300.300.300/24false>> exit# ค้นหา IP หรือ CIDR จากไฟล์ในเครื่อง (มีเพียงรายการเดียว) ในรูปแบบ v2rayGeoIPDat $ ./geoip lookup -f v2rayGeoIPDat -u ./cn.dat กรอก IP หรือ CIDR (พิมพ์ "exit" เพื่อออก):>> 1.0.1.1true>> 1.0.1.1/24true>> 1.0.1.1/23false>> 2.2.2.2false>> 2.2.2.2/24false>> 300.300 300.300false>> 300.300.300.300/24false>> exit# ค้นหา IP หรือ CIDR จาก URL ระยะไกล (มีหลายรายการ) ในรูปแบบ v2rayGeoIPDat$ ./geoip lookup -f v2rayGeoIPDat -u https://example.com/geoip.dat กรอก IP หรือ CIDR (พิมพ์ "exit" เพื่อออก):>> 1.0.1.1 cn>> 1.0.1.1/24 cn>> 1.0.1.1/23เท็จ>> 1.0.0.1 หรือ cloudflare >> 1.0.0.1/24 au, cloudflare >> 300.300.300.300false >> 300.300.300.300/24false >> ออก
@Loyalsoldier/v2ray-rules-dat
@Loyalsoldier/clash-rules
@Loyalsoldier/surge-rules
CC-BY-SA-4.0 และ GPL-3.0
ผลิตภัณฑ์นี้ประกอบด้วยข้อมูล GeoLite2 ที่สร้างโดย MaxMind ซึ่งหาได้จาก MaxMind