Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 51k
Create blacklistipchecker.py#9416
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Uh oh!
There was an error while loading. Please reload this page.
Changes from all commits
69e5683c66872c7cf1665fbf9f4283e7036283e633616c1dbd10e271d692b71e83990e1406c1c07ab68b5eda7e8a07d304903f7579d41b224ca234dcc00ba46f025778786aa35e773a6e8ebe665adc0d6799456478ba0357dcbb6f37f6527ae8c084b62f221746993d194332cd806503fa7543427825a65a0080e5031cac8bbc553ed94849829a3b13160ceaFile filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,99 @@ | ||
| # This CLI script checks if entered ips are or | ||
| # aren`t blacklisted on different lists | ||
| # You need to get API key on blacklistchecker | ||
| # to make it work (it`s free 30 IPs per month) | ||
| import json | ||
| import re | ||
| import sys | ||
| from typing import Any | ||
| import requests | ||
| api_key = "key_CAMF5HI5t4ZzkmgGkioI1tius" | ||
| def test_ip(ip: str) -> Any: | ||
| """ | ||
| This function tests if an IP is blacklisted on different lists. | ||
| It returns a tuple with the IP and a list of the\ | ||
| blacklists where it was detected. | ||
| >>> test_ip('8.8.8.8') | ||
| {'statusCode': 401, 'error': 'Too Many Requests',\ | ||
| 'message': 'You do not have enough credits on your\ | ||
| account. Please upgrade to make another request.'} | ||
| ('limit exceeded!', []) | ||
| >>> test_ip('127.0.0.1') | ||
| {'statusCode': 401, 'error': 'Too Many Requests',\ | ||
| 'message': 'You do not have enough credits on your\ | ||
| account. Please upgrade to make another request.'} | ||
| ('limit exceeded!', []) | ||
| """ | ||
| link = f"https://api.blacklistchecker.com/check/{ip}" | ||
| result = requests.get(link, auth=(api_key, "")) | ||
| result_dec = json.loads(result.content) | ||
| print(result_dec) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. An error occurred while parsing the file: Traceback (mostrecentcalllast):
File"/opt/render/project/src/algorithms_keeper/parser/python_parser.py", line146, inparsereports=lint_file(
^^^^^^^^^^libcst._exceptions.ParserSyntaxError: SyntaxError @ 20:16.parsererror: errorat19:15: expectedoneof!=, %, &, (, *, **, +, ,, -, ., /, //, <, <<, <=, ==, >, >=, >>, @, [, ^, and, if, in, is, not, or, |print(result_dec)
^ | ||
| detects: list[str] = [] | ||
| if result_dec.get("statusCode") == 401: | ||
| res = "limit exceeded!" | ||
| return (res, detects) | ||
| elif result_dec.get("detections") != 0: | ||
| res = ip | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. An error occurred while parsing the file: Traceback (mostrecentcalllast):
File"/opt/render/project/src/algorithms_keeper/parser/python_parser.py", line146, inparsereports=lint_file(
^^^^^^^^^^libcst._exceptions.ParserSyntaxError: SyntaxError @ 26:17.parsererror: errorat25:19: expected :
res=ip^ | ||
| blsts = result_dec.get("blacklists") | ||
| for n in blsts: | ||
| if n.get("detected") is True: | ||
| detects.append(n.get("name")) | ||
| return (res, detects) | ||
| def isip(ip: str) -> bool: | ||
| """ | ||
| Check if a given string is a valid IP address. | ||
| >>> isip('192.168.0.1') | ||
| True | ||
| >>> isip('10.0.0.256') | ||
| False | ||
| >>> isip('127.0.0.1') | ||
| True | ||
| >>> isip('google.com') | ||
| False | ||
| >>> isip('2001:0db8:85a3:0000:0000:8a2e:0370:7334') | ||
| False | ||
| """ | ||
| match = re.match(r"[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}", ip) | ||
| if not bool(match): | ||
| return False | ||
| return all(0 <= int(octet) <= 255 for octet in ip.split(".")) | ||
| res_txt = "IP blacklists check returned next results:\n" | ||
| send_param = 0 | ||
| if len(sys.argv) > 1: | ||
| for x in sys.argv[1:]: | ||
| if isip(x) is not True: | ||
| print(f"IP {x} is incorrect\n") | ||
| else: | ||
| if test_ip(x) is not None: | ||
| res, detec = test_ip(x) | ||
| if res == "limit exceeded": | ||
| res_txt = res_txt + " LIMIT Exceeded!" | ||
| break | ||
| else: | ||
| res_txt += f"{res} is detected in {detec} blacklists \n \n" | ||
| else: | ||
| print("Type in ip to check") | ||
| x = input() | ||
| if isip(x) is not True: | ||
| print(f"IP {x} is incorrect\n") | ||
| else: | ||
| if test_ip(x) is not None: | ||
| res, detec = test_ip(x) | ||
| if res == "limit exceeded": | ||
| res_txt = res_txt + "Limit Exceeded!\n" | ||
| else: | ||
| res_txt += f"{res} is detected in {detec} blacklists \n \n" | ||
| if len(res_txt) <= 43: | ||
| print("IPs not blacklisted!") | ||
| print(res_txt) | ||
| else: | ||
| print("Blacklist check result is: \n" + res_txt) | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
An error occurred while parsing the file:
other/blacklistipchecker.py