Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion fqsocks/lan_ip.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,23 @@
import china_ip

# Following ip range are copied from Wikipedia:Reserved_IP_Addresses
# Link: https://en.wikipedia.org/wiki/Reserved_IP_addresses

LOCAL_NETWORKS = [
china_ip.translate_ip_range('0.0.0.0', 8),
# china_ip.translate_ip_range('7.0.0.0', 8), # US Dept of Defense, I don't think anyone will use this network :P
china_ip.translate_ip_range('10.0.0.0', 8),
china_ip.translate_ip_range('100.64.0.0', 10),
china_ip.translate_ip_range('127.0.0.0', 8),
china_ip.translate_ip_range('169.254.0.0', 16),
china_ip.translate_ip_range('172.16.0.0', 12),
china_ip.translate_ip_range('192.0.0.0', 24),
china_ip.translate_ip_range('192.0.2.0', 24), # Network for documentation.
# china_ip.translate_ip_range('192.88.99.0', 24), # This network is marked as Internet, thus not enabled for shortcut.
china_ip.translate_ip_range('192.168.0.0', 16),
china_ip.translate_ip_range('198.18.0.0', 15),
china_ip.translate_ip_range('198.51.100.0', 24), # Network for documentation.
china_ip.translate_ip_range('203.0.113.0', 24), # Network for documentation.
china_ip.translate_ip_range('224.0.0.0', 4),
china_ip.translate_ip_range('240.0.0.0', 4)]

Expand All @@ -19,4 +30,4 @@ def is_lan_traffic(src, dst):

def is_lan_ip(ip):
ip_as_int = china_ip.ip_to_int(ip)
return any(start_ip_as_int <= ip_as_int <= end_ip_as_int for start_ip_as_int, end_ip_as_int in LOCAL_NETWORKS)
return any(start_ip_as_int <= ip_as_int <= end_ip_as_int for start_ip_as_int, end_ip_as_int in LOCAL_NETWORKS)