A Python library to utilize AWS API Gateway's large IP pool as a proxy to generate pseudo-infinite IPs for web scraping and brute forcing.

Overview

requests-ip-rotator

A Python library to utilize AWS API Gateway's large IP pool as a proxy to generate pseudo-infinite IPs for web scraping and brute forcing.

This library will allow the user to bypass IP-based rate-limits for sites and services.


Installation

This package is on pypi so you can install via any of the following:

  • pip3 install requests-ip-rotator
  • python3 -m pip install requests-ip-rotator

 

Simple Usage

import requests
from requests_ip_rotator import ApiGateway

# Create gateway object and initialise in AWS
gateway = ApiGateway("https://site.com")
gateway.start()

# Assign gateway to session
session = requests.Session()
session.mount("https://site.com", gateway)

# Send request (IP will be randomised)
response = session.get("https://site.com/index.html")
print(response.status_code)

# Delete gateways
gateway.shutdown()

Please remember that if gateways are not shutdown via the shutdown() method, you may be charged in future.

 

Costs

API Gateway is free for the first million requests per region, which means that for most use cases this should be completely free.
At the time of writing, AWS charges ~$3 per million requests after the free tier has been exceeded.
 

Documentation

AWS Authentication

It is recommended to setup authentication via environment variables. With awscli, you can run aws configure to do this, or alternatively, you can simply set the AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY variables yourself.

You can find your access key ID and secret by following the official AWS tutorial.

 

Creating ApiGateway object

The ApiGateway class can be created with the following optional parameters:

Name Description Required Default
site The site (without path) requests will be sent to. True
regions An array of AWS regions to setup gateways in. False ip_rotator.DEFAULT_REGIONS
access_key_id AWS Access Key ID (will override env variables). False Relies on env variables.
access_key_secret AWS Access Key Secret (will override env variables). False Relies on env variables.
from ip_rotator import ApiGateway, EXTRA_REGIONS, ALL_REGIONS

# Gateway to outbound HTTP IP and port for only two regions
gateway_1 = ApiGateway("http://1.1.1.1:8080", regions=["eu-west-1", "eu-west-2"])

# Gateway to HTTPS google for the extra regions pack, with specified access key pair
gateway_2 = ApiGateway("https://www.google.com", regions=EXTRA_REGIONS, access_key_id="ID", access_key_secret="SECRET")

 

Starting API gateway

An ApiGateway object must then be started using the start method.
By default, if an ApiGateway already exists for the site, it will use the existing endpoint instead of creating a new one.
This does not require any parameters, but accepts the following:

Name Description Required
force Create a new set of endpoints, even if some already exist. False
endpoints Array of pre-existing endpoints (i.e. from previous session). False
# Starts new ApiGateway instances for site, or locates existing endpoints if they already exist.
gateway_1.start()

# Starts new ApiGateway instances even if some already exist.
gateway_2.start(force=True)

 

Sending requests

Requests are sent by attaching the ApiGateway object to a requests Session object.
The site given in mount must match the site passed in the ApiGateway constructor.

If you pass in a X-My-X-Forwarded-For header, this will get sent as X-Forwarded-For in the outbound request.

import requests

# Posts a request to the site created in gateway_1. Will be sent from a random IP.
session_1 = requests.Session()
session_1.mount("http://1.1.1.1:8080", gateway_1)
session_1.post("http://1.1.1.1:8080/update.php", headers={"Hello": "World"})

# Send 127.0.0.1 as X-Forwarded-For header in outbound request.
session_1.post("http://1.1.1.1:8080/update.php", headers={"X-My-X-Forwarded-For", "127.0.0.1"})

# Execute Google search query from random IP
session_2 = requests.Session()
session_2.mount("https://www.google.com", gateway_2)
session_2.get("https://www.google.com/search?q=test")

 

Closing ApiGateway Resources

It's important to shutdown the ApiGateway resources once you have finished with them, to prevent dangling public endpoints that can cause excess charges to your account.
This is done through the shutdown method of the ApiGateway object. It will close all resources for the regions specified in the ApiGateway object constructor.

# This will shutdown all gateway proxies for "http://1.1.1.1:8080" in "eu-west-1" & "eu-west-2"
gateway_1.shutdown()

# This will shutdown all gatewy proxies for "https://www.google.com" for all regions in ip_rotator.EXTRA_REGIONS
gateway_2.shutdown()

Credit

The core gateway creation and organisation code was adapter from RhinoSecurityLabs' IPRotate Burp Extension.
The X-My-X-Forwarded-For header forwarding concept was originally conceptualised by ustayready in his fireprox proxy.

Comments
  • send() not printing out to console

    send() not printing out to console

    Hello,

    I was tinkering around with send(self, request, ...) in ip_rotator.py and noticed that print statements in the method will not show up. But, print statements in the module's other methods like start() will show in console.

    I assume send(self, request, ...) is being used under the hood? If this is the case, how come the print statements don't show up? Is there any other way way to view details about the request parameter?

    Thanks

    question 
    opened by harhur 15
  • Removed creatation of usage plans as they are not required and were n…

    Removed creatation of usage plans as they are not required and were n…

    There are 3 main changes in this PR. Perhaps I should have separated them out...

    1. Removed creation of usage plan. Isn't required for functioning are we aren't cleaning up. 300 limit on usage policy

    2. added modify_request_dict which allows passing in a dict that defines a request to be modified for use with the API Gateway. This change allowed me to easily implement an async scraper.

    3. Project was previously ignoring query string paramaters in request if path was empty. Params are now explicitly extracted and appended to params to request object.

    opened by harryslimes 9
  • Recurring 403 error

    Recurring 403 error

    Just discovered this package and it has huge promise, however I'm not sure if something on AWS has changed since the last release.

    Using the below code i always get a 403 response.

    import requests
    from requests_ip_rotator import ApiGateway
    
    gateway = ApiGateway(
        "https://www.google.com",
        regions=['eu-west-1', 'eu-west-2', 'eu-west-3'],
        access_key_id="MY_KEY",
        access_key_secret="MY_SECRET"
        )
    gateway.start()
    
    session = requests.Session()
    session.mount("https://www.google.com", gateway)
    response = session.get("https://www.google.com/search?q=random+search")
    print(response.status_code)
    
    question 
    opened by cia05rf 6
  • TooManyRedirects: Exceeded 30 redirects.

    TooManyRedirects: Exceeded 30 redirects.

    import requests
    from requests_ip_rotator import ApiGateway, EXTRA_REGIONS
    
    gateway = ApiGateway("https://spare.avspart.com/", access_key_id = 'my key', access_key_secret = 'my secret key')
    gateway.start()
    
    session = requests.Session()
    session.mount("https://spare.avspart.com/", gateway)
    
    response = session.get("https://spare.avspart.com/catalog/case/64848/4534337/677993/")
    print(response.status_code)
    
    gateway.shutdown()
    

    When I try and send a request to the page I get this error. Not sure what's happening?

    Starting API gateways in 10 regions.
    Using 10 endpoints with name 'https://spare.avspart.com/ - IP Rotate API' (10 new).
    Traceback (most recent call last):
      File "test.py", line 16, in <module>
        response = session.get("https://spare.avspart.com/catalog/case/64848/4534337/677993/")
      File "/mnt/c/Users/hewin/Downloads/Asyncio/.venv/lib/python3.8/site-packages/requests/sessions.py", line 555, in get
        return self.request('GET', url, **kwargs)
      File "/mnt/c/Users/hewin/Downloads/Asyncio/.venv/lib/python3.8/site-packages/requests/sessions.py", line 542, in request
        resp = self.send(prep, **send_kwargs)
      File "/mnt/c/Users/hewin/Downloads/Asyncio/.venv/lib/python3.8/site-packages/requests/sessions.py", line 677, in send
        history = [resp for resp in gen]
      File "/mnt/c/Users/hewin/Downloads/Asyncio/.venv/lib/python3.8/site-packages/requests/sessions.py", line 677, in <listcomp>
        history = [resp for resp in gen]
      File "/mnt/c/Users/hewin/Downloads/Asyncio/.venv/lib/python3.8/site-packages/requests/sessions.py", line 166, in resolve_redirects
        raise TooManyRedirects('Exceeded {} redirects.'.format(self.max_redirects), response=resp)
    requests.exceptions.TooManyRedirects: Exceeded 30 redirects.
    
    opened by DLHTurboDieselLtd 6
  • 403: forbidden

    403: forbidden

    I am experiencing a strange situation:

    • when making requests here: https://www.zillow.com/homes/Miami.dash.Dade-County,-FL_rb/ everything goes correctly
    • when i try to make a request here instead : https://www.zillow.com/homedetails/14851-SW-150th-St-Miami-FL-33196/44327576_zpid/ I get this: {"message":"Forbidden"}

    I know it has to be something related to headers because if i dont use any header I always get 403, but even using headers in the second link i cant get a 200 response. I dont know if something like this has happened to any of you. If someone knows the issue i would appreciate a lot if they let me know. Thank you!

    question 
    opened by jherrerogb98 5
  • Batch opening and closing gateways?

    Batch opening and closing gateways?

    Hello sir, very nice module :)

    I am trying to make it nicer by speeding up closing and opening of gateways. Current implementation uses:

    apis = awsclient.get_rest_apis()["items"] // to get the ids to close and, lists max 20 awsclient.delete_rest_api(restApiId=api["id"]) // to actually close it

    Which works fine, unless you have to close 600 gateways which easily takes half an hour and you have to recursively call get_rest_apis(), because it lists only 20

    The same problem happens with opening gateways. Opening gateways for 10 domains takes around 30s. I am attaching the relevant code from the project:

        `# Create simple rest API resource
        create_api_response = awsclient.create_rest_api(
            name=self.api_name,
            endpointConfiguration={
                "types": [
                    "REGIONAL",
                ]
            }
        )
    
        # Get ID for new resource
        get_resource_response = awsclient.get_resources(
            restApiId=create_api_response["id"]
        )
        rest_api_id = create_api_response["id"]
    
        # Create "Resource" (wildcard proxy path)
        create_resource_response = awsclient.create_resource(
            restApiId=create_api_response["id"],
            parentId=get_resource_response["items"][0]["id"],
            pathPart="{proxy+}"
        )
    
        # Allow all methods to new resource
        awsclient.put_method(
            restApiId=create_api_response["id"],
            resourceId=get_resource_response["items"][0]["id"],
            httpMethod="ANY",
            authorizationType="NONE",
            requestParameters={
                "method.request.path.proxy": True,
                "method.request.header.X-My-X-Forwarded-For": True
            }
        )
    
        # Make new resource route traffic to new host
        awsclient.put_integration(
            restApiId=create_api_response["id"],
            resourceId=get_resource_response["items"][0]["id"],
            type="HTTP_PROXY",
            httpMethod="ANY",
            integrationHttpMethod="ANY",
            uri=self.site,
            connectionType="INTERNET",
            requestParameters={
                "integration.request.path.proxy": "method.request.path.proxy",
                "integration.request.header.X-Forwarded-For": "method.request.header.X-My-X-Forwarded-For"
            }
        )
    
        awsclient.put_method(
            restApiId=create_api_response["id"],
            resourceId=create_resource_response["id"],
            httpMethod="ANY",
            authorizationType="NONE",
            requestParameters={
                "method.request.path.proxy": True,
                "method.request.header.X-My-X-Forwarded-For": True
            }
        )
    
        awsclient.put_integration(
            restApiId=create_api_response["id"],
            resourceId=create_resource_response["id"],
            type="HTTP_PROXY",
            httpMethod="ANY",
            integrationHttpMethod="ANY",
            uri=f"{self.site}/{{proxy}}",
            connectionType="INTERNET",
            requestParameters={
                "integration.request.path.proxy": "method.request.path.proxy",
                "integration.request.header.X-Forwarded-For": "method.request.header.X-My-X-Forwarded-For"
            }
        )
    
        # Creates deployment resource, so that our API to be callable
        awsclient.create_deployment(
            restApiId=rest_api_id,
            stageName="ProxyStage"
        )
    
        # Return endpoint name and whether it show it is newly created
        return {
            "success": True,
            "endpoint": f"{rest_api_id}.execute-api.{region}.amazonaws.com",
            "new": True
        }`
    

    Is it possible to perform opening and closing tasks in batch?

    question 
    opened by mittster 5
  • URL Encoding Not as Expected

    URL Encoding Not as Expected

    I have been attempting to use this package to scrape Google News - I am using the most recent release (v1.0.10), and have configured the AWS-CLI. The exact code sequence resulting in a failure is as follows:

    1. Get blocked by Google :) (run this, and you'll likely be blocked after 750 to 1000 requests)
    import requests
    for i in range(1,10000):
        response = requests.get("http://www.google.com/search?q=barry+bonds after:2021-12-22 before: 2021-12-23&tbm=nws&hl=en&num=10")
        if response.status_code != 200:
            print(i)
            print(response.status_code)
            break
    
    1. After getting blocked on my IP, I should still be able to access google using the module (i.e. after running the above block, I should be able to run the below block, and get a 200 response).
    with ApiGateway("https://google.com") as g:
        session = requests.Session()
        session.mount("https://google.com", g)
        response = session.get("http://www.google.com/search?q=elon+musk after:2021-12-22 before:    2021-12-23&tbm=nws&hl=en&num=10")
        print(response.status_code)
    

    Unfortunately, the result is a 429 response for me ... on the other hand, when I tried using a proxy from scrapingbee.com after initially getting blocked by Google (performing step 1), I actually did get a 200 response. I configured the AWS CLI, and I also tried inputting the keys as arguments and creating new users with the API Gateway enabled, as well as using the root key, but have had no luck.

    Screen Shot 2021-12-24 at 5 26 40 PM

    Are you able to replicate this issue/first artificially block yourself from Google, and then being unable to scrape using this ip-rotator module? Thank you very much for an excellent module, and Merry Christmas and happy holidays!

    bug 
    opened by hariravi 5
  • how to check if its working

    how to check if its working

    hi, im running the request ip rotator in a while infinite loop. But i dont know if its really working, is it sending requests with different ip, how can i check that? im asking because i see in the terminal "IP Rotate API' (0 new)"

    "Starting API gateways in 17 regions. Using 17 endpoints with name 'https://www.google.com - IP Rotate API' (0 new). running #3 - Status code: 200 - Host: 2000qnx4dm5b6.execute-api.us-east-1.amazonaws.com - Request headers X-My-X-Forwarded-For: XX.XXX.XXX.XX"

    why do i see 0 new?

    question 
    opened by AlexWayne20 5
  • How I can bypass cloudflare?

    How I can bypass cloudflare?

    The site has Cloudflare protection to bypass it as I know I need to spoof tls fingerprint. How I can change tls fingerprint with code or in aws? Or mb there is another method to bypass it?

    opened by MsLolita 4
  • Add pagination to gateway getting

    Add pagination to gateway getting

    When there are many gateways on an account / region and the relevant ones aren't on the first page (25 per page) they start to accumulate since they may not be found to be deleted.

    bug 
    opened by RobertLucey 4
  • Unable to download video

    Unable to download video

    If you try to view a video, the response has status code 500 with message {"message": "Internal server error"}

    You can try it out with this sample:

    if __name__ == '__main__':
        gateway = ApiGateway("https://video.xx.fbcdn.net", regions=["regionhere"], access_key_id=ACCESS_KEY_ID, access_key_secret=ACCESS_KEY_SECRET)
        gateway.start()
    
        session = requests.Session()
        session.mount("https://video.xx.fbcdn.net", gateway)
    
        response = session.get("https://video.xx.fbcdn.net/v/t66.36240-2/10000000_5162062970516874_3952172667405771162_n.mp4?_nc_cat=110&_nc_ht=video.fmnl8-2.fna&_nc_ohc=RuGOgev5TvEAX8FI4Hk&_nc_sid=985c63&ccb=1-7&efg=eyJybHIiOjIzNzQsInJsYSI6MTc5MSwidmVuY29kZV90YWciOiJvZXBfaGQifQ%3D%3D&oe=628E6A4A&oh=00_AT__3AG9wy4Vz9QqimNjwzLTspBsfs0E5-VyVRaLCqGAUw&rl=2374&vabr=1583")
        print(response.status_code) // this prints 500
    
        # Delete gateways
        gateway.shutdown()
    

    Also tried with: -https://previews.customer.envatousercontent.com/h264-video-previews/34bc5a70-9db3-4ee9-821d-b4304d0c5dc5/33244341.mp4

    Any idea whats going on? It seems that default aws gateway configuration does not support video.

    bug 
    opened by mittster 3
  • API Gateway Converting

    API Gateway Converting "%2f" to "/" in URL Parameter

    Hello @Ge0rg3! Thank you for putting together this library. It was proven to be effective over months of use.

    However I'd like to report that some urls fail to fetch due to, at least I think so, how API Gateway is constructed. Take a look at this url for example:

    https://scontent.xx.fbcdn.net/v/t39.25447-2/315991144_6377206065657734_5025935354679506890_n.mp4?_nc_cat=106&vs=e0ece699e5d69073&_nc_vs=HBksFQAYJEdHaWsxUktHOXpQX0NLZ1dBTXEzdjVlVHRiOUZibWRqQUFBRhUAAsgBABUAGCRHTlI1MVJKU3ZyWjZlYmtFQUM5WExHZ25HS0F6YnJGcUFBQUYVAgLIAQBLB4gScHJvZ3Jlc3NpdmVfcmVjaXBlATENc3Vic2FtcGxlX2ZwcwAQdm1hZl9lbmFibGVfbnN1YgAgbWVhc3VyZV9vcmlnaW5hbF9yZXNvbHV0aW9uX3NzaW0AKGNvbXB1dGVfc3NpbV9vbmx5X2F0X29yaWdpbmFsX3Jlc29sdXRpb24AHXVzZV9sYW5jem9zX2Zvcl92cW1fdXBzY2FsaW5nABFkaXNhYmxlX3Bvc3RfcHZxcwAVACUAHAAAJtLalcytxbYCFQIoAkMzGAt2dHNfcHJldmlldxwXQDQaXjU%2FfO4YIGRhc2hfdjRfNXNlY2dvcF9ocTFfZnJhZ18yX3ZpZGVvEgAYGHZpZGVvcy52dHMuY2FsbGJhY2sucHJvZDgSVklERU9fVklFV19SRVFVRVNUGwqIFW9lbV90YXJnZXRfZW5jb2RlX3RhZwZvZXBfaGQTb2VtX3JlcXVlc3RfdGltZV9tcwEwDG9lbV9jZmdfcnVsZQd1bm11dGVkE29lbV9yb2lfcmVhY2hfY291bnQGMTA5NTIxEW9lbV9pc19leHBlcmltZW50AAxvZW1fdmlkZW9faWQPNDcwODM4MDA1MTIwMzYxEm9lbV92aWRlb19hc3NldF9pZBAxMDk3NTM2MDE3NjIxNjU2FW9lbV92aWRlb19yZXNvdXJjZV9pZA82ODI4ODg3Mzk4NjIxODUcb2VtX3NvdXJjZV92aWRlb19lbmNvZGluZ19pZA81MTk4NzQyODMzNjkyNTEOdnRzX3JlcXVlc3RfaWQAJQIcACWOAhsIiAFzAzYzOAJjZAoyMDIyLTExLTE4A3JjYgYxMDk1MDADYXBwDFBvd2VyIEVkaXRvcgJjdBlDT05UQUlORURfUE9TVF9BVFRBQ0hNRU5UE29yaWdpbmFsX2R1cmF0aW9uX3MJMjAuMTM4NjY3AWYCYWQCdHMVcHJvZ3Jlc3NpdmVfZW5jb2RpbmdzAA%3D%3D&ccb=1-7&_nc_sid=4ea082&efg=eyJ2ZW5jb2RlX3RhZyI6Im9lcF9oZCJ9&_nc_ohc=Cfpbu-XsZBsAX87uM0c&_nc_ht=scontent.fltn3-2.fna&oh=00_AfAJY6nikmbiUBPnm8G-_aKrghM7WeryZX3b0Sk4zrarZw&oe=63A51240&_nc_rid=089394793026750

    You can copy paste this url to browser and it plays as it should. However if you make a request via API Gateway, you will get URL signature mismatch error. That is the error you get from fbcdn when the url is malformed. This is a video, so you will also need to send a Range header.

    url = "URL above"
    headers["Range"] = f"bytes=0-9999999"
     with current_session.get(url, stream=True, headers=headers, allow_redirects=False) as response:
            with open(location["absolute_output_file"], 'wb') as f:
                for chunk in response.iter_content(chunk_size=8192):
                    f.write(chunk)
    

    I tried escaping % by replacing them with %25, but it didn't work. Passing URL(url) as request url also didn't work. I uploaded a media file on a server and used a name with %, if fetched normally so I am not sure what is the cause for a problem here. If the url is expired when you see this, I'll supply a new one. Thanks for your help.

    bug help wanted 
    opened by mittster 3
  • Does API Gateway charge for 4XX/5XX errors?

    Does API Gateway charge for 4XX/5XX errors?

    Hi All -

    Great project!

    Just started testing this repo but it looks like CloudWatch stats are delayed.

    I'm wondering if anyone knows whether the API Gateway charges for failed (4XX/5XX) requests?

    I believe it does, but just want to be sure.

    Thanks!

    opened by codemonies 0
  • REST vs HTTP Api

    REST vs HTTP Api

    Hey there, thanks a lot for this great lib! I noticed that it uses the REST api. Would it theoretically be possibe to use the HTTP Api, which is only 1/3 the price?

    enhancement 
    opened by simplexx 14
  • aiohttp-ip-rotator

    aiohttp-ip-rotator

    Hey, I am back again:) I was happily parsing last few days away, blew past the free tier already, but I wanted to scale up my operation further to make it even faster. I am limited with max 60 workers in the pool, so I decided to rewrite it from multiprocessing to asynchronous concurrency. This is where I realized that I can't use Requests module, but your module was made to work only with Requests.

    How difficult would it be to rewrite it to make it compatible with aiohttp? Is there any way to make it work with requests, even thou the module is inherently blocking at the sockets level? The higher latency, the more beneficial would it be to move this work from multiprocessing to asynchronous loop. I could try to work on it, but I am new to python so I appreciate any kind of feedback or advice you can give me.

    I just found Dask and am looking into it, if it could help me keep using Requests. Another possibility is to rent a server that has enough virtual cores to go beyond 60 workers.

    enhancement help wanted 
    opened by vincenthawke 9
Releases(v1.0.14)
  • v1.0.14(Oct 27, 2022)

    What's Changed

    • Add Option to Require Manual Deletion by @Ge0rg3 in https://github.com/Ge0rg3/requests-ip-rotator/pull/47
    • Document New Features by @Ge0rg3 in https://github.com/Ge0rg3/requests-ip-rotator/pull/48

    Full Changelog: https://github.com/Ge0rg3/requests-ip-rotator/compare/v1.0.12...v1.0.14

    Source code(tar.gz)
    Source code(zip)
  • v1.0.12(Jul 26, 2022)

    What's Changed

    • Allow silent runs to reduce noise
    • Add pagination to gateway getting by @RobertLucey in https://github.com/Ge0rg3/requests-ip-rotator/pull/32
    • Do not fail on name checking unnamed gateways by @RobertLucey in https://github.com/Ge0rg3/requests-ip-rotator/pull/33

    New Contributors

    • @RobertLucey made their first contribution in https://github.com/Ge0rg3/requests-ip-rotator/pull/32

    Full Changelog: https://github.com/Ge0rg3/requests-ip-rotator/compare/v1.0.11...v1.0.12

    Source code(tar.gz)
    Source code(zip)
  • v1.0.11(Mar 8, 2022)

  • v1.0.10(Oct 11, 2021)

    Few PRs moved into this:

    • Can now handle with block
    • Automatically randomize X-Forwarded-For header
    • No longer creates usage plans
    • Updated README with better process explanation

    Will be creating a separate project to address #6 in the coming month, that will depend on this project for creating AWS resources. Its too big a jump to transform this into a truly async project on its own, as requests does not handle it well.

    Source code(tar.gz)
    Source code(zip)
    requests-ip-rotator-main.zip(21.40 KB)
Arp Spoofer using Python 3.

ARP Spoofer / Wifi Killer By Auax Run: Run the application with the following command: python3 spoof.py -t target_ip_address -lh host_ip_address I

Auax 6 Sep 15, 2022
Take a list of domains and probe for working HTTP and HTTPS servers

httprobe Take a list of domains and probe for working http and https servers. Install ▶ go get -u github.com/tomnomnom/httprobe Basic Usage httprobe

Tom Hudson 2.3k Dec 28, 2022
Publish GPU miner info to MQTT

Miner2MQTT Доступ к вашему GPU майнеру через MQTT. Изменения 1.0 EXE файл для Windows 1.1 Управление вентиляторами видеокарт (Linux) Упраление power l

Dmitry Bukhvalov 5 Aug 21, 2022
Python implementation of the IPv8 layer provide authenticated communication with privacy

Python implementation of the IPv8 layer provide authenticated communication with privacy

203 Oct 26, 2022
Simple reverse backdoor utility, that uses sockets to communicate.

reverse_backdoor Simple reverse backdoor utility, that uses sockets to communicate. How to use Run rev_bd_listener.py using command below: $ python3 r

1 Dec 10, 2021
PoC code for stealing the WiFi password of a network with a Lovebox IOT device connected

LoveBoxer PoC code for stealing the WiFi password of a network with a Lovebox IOT device connected. This PoC was is what I used in this blogpost Usage

Graham Helton 10 May 24, 2022
A socket script to obtain chinese phones-sequence for any english word

Foreign Pronunciation Generator (English-Chinese) We provide a simple socket script for acquiring Chinese pronunciation of English words (phones in ai

Ephemeroptera 5 Jul 25, 2022
A Powerful, Smart And Simple Userbot In Telethon

Owner: KeinShin 🇮🇳 BLACK LIGHTNING A Powerful, Smart And Simple Userbot In Telethon. Credits This is A Remix Bot Of Many UserBot. DARKCOBRA FridayUs

Akki ThePro 1 Nov 29, 2021
A simple, personal chat program that runs on a single computer. No Internet, just you.

MultiChat A simple, personal chat program that runs on a single computer. No Internet, just you. Simple and Local MultiChat was created with ease of u

Owls 2 Aug 19, 2022
A simple python script to send cute messages to my boyfriend.

Morning Messages A simple python script to send cute messages to my boyfriend. It gives him the weather and news currently. Installation git clone htt

Sabrina Medwinter 3 Oct 12, 2022
👨🏼‍💻 ‎‎‎‏‏ A customizable man-in-the-middle TCP proxy with out-of-the-box support for HTTP & HTTPS.

👨‍💻 mitm A customizable man-in-the-middle TCP proxy with out-of-the-box support for HTTP & HTTPS. Installing pip install mitm Note that OpenSSL 1.1

Felipe 92 Jan 05, 2023
Web-server with a parser, connection to DBMS, and the Hugging Face.

Final_Project Web-server with parser, connection to DBMS and the Hugging Face. Team: Aisha Bazylzhanova(SE-2004), Arysbay Dastan(SE-2004) Installation

Aisha Bazylzhanova 2 Nov 18, 2021
An API for controlling Wi-Fi connections on Balena devices.

Description An API for controlling Wi-Fi connections on Balena devices. It does not contain an interface, instead it provides API endpoints to send re

8 Dec 25, 2022
Socialhome is best described as a federated personal profile with social networking functionality

Description Socialhome is best described as a federated personal profile with social networking functionality. Users can create rich content using Mar

Jason Robinson 332 Dec 30, 2022
Python 3.3+'s ipaddress for older Python versions

ipaddress Python 3.3+'s ipaddress for Python 2.6, 2.7, 3.2. This repository tracks the latest version from cpython, e.g. ipaddress from cpython 3.8 as

Philipp Hagemeister 103 Nov 11, 2022
Solismod - A script subscribes to MQTT topics and waits for a message

SolisMod This is a first attempt to modify Solis inverter settings As SolisMon3,

9 Nov 14, 2022
Real-time text-editor using python tcp socket

Real-time text-editor using python tcp socket This project does not need any external libraries so you don't need to use virtual environments. All you

MatiYo 3 Aug 05, 2022
This is simple script that changes the config register of a cisco router over serial so that you can reset the password

Cisco-router-config-bypass-tool- This is simple script that changes the config register of a cisco router over serial so that you can bypass the confi

James 1 Jan 02, 2022
Ip-Tracker: a script written in python for tracking Someone using targets ip-Tracker address

🔰 𝕀𝕡-𝕋𝕣𝕒𝕔𝕜𝕖𝕣 🔰 Ip-Tracker is a script written in python for tracking Someone using targets ip-Tracker address It was made by Spider Anongre

Spider Anongreyhat 15 Dec 02, 2022
A Python framework for interacting with Solana's Pyth network.

Pyth Network A basic Python framework for reading and decoding data regarding the Pyth network

1 Nov 29, 2021