[common] support multiple codes/blocks for '--xff'
for example '--xff JP,CN,105.48.0.0/12'
This commit is contained in:
@@ -258,12 +258,21 @@ COUNTRY_IP_MAP = {
|
||||
}
|
||||
|
||||
|
||||
def random_ipv4(block):
|
||||
if len(block) == 2:
|
||||
block = COUNTRY_IP_MAP.get(block.upper())
|
||||
if not block:
|
||||
return None
|
||||
def random_ipv4(blocks):
|
||||
if isinstance(blocks, str):
|
||||
blocks = blocks.split(",")
|
||||
|
||||
cidr = []
|
||||
for block in blocks:
|
||||
if len(block) == 2:
|
||||
block = COUNTRY_IP_MAP.get(block.upper())
|
||||
if not block:
|
||||
continue
|
||||
cidr.append(block)
|
||||
if not cidr:
|
||||
return None
|
||||
|
||||
block = random.choice(cidr)
|
||||
addr, _, preflen = block.partition("/")
|
||||
if not preflen:
|
||||
return addr
|
||||
|
||||
@@ -494,8 +494,8 @@ def build_parser():
|
||||
"--xff",
|
||||
dest="geo-bypass", metavar="VALUE", action=ConfigAction,
|
||||
help=("Use a fake 'X-Forwarded-For' HTTP header to try bypassing "
|
||||
"geographic restrictions. Can be an IP block in CIDR notation "
|
||||
"or a two-letter ISO 3166-2 country code")
|
||||
"geographic restrictions. Can be IP blocks in CIDR notation "
|
||||
"or two-letter ISO 3166-2 country codes (12.0.0.0/8,FR,CN)")
|
||||
)
|
||||
networking.add_argument(
|
||||
"--source-address",
|
||||
|
||||
Reference in New Issue
Block a user