Asynchronous User-Agent Retrieval with Aiohttp

  • Share this:

Code introduction


This code uses the Aiohttp library to asynchronously retrieve the current user's IP address and a randomly selected User-Agent combination.


Technology Stack : Aiohttp, asyncio, random

Code Type : Asynchronous network request

Code Difficulty : Intermediate


                
                    
def random_user_agent():
    import aiohttp
    import asyncio
    import random

    async def fetch_user_agent(session):
        async with session.get('https://api.ipify.org') as response:
            ip = await response.text()
            user_agents = [
                'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
                'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15',
                'Mozilla/5.0 (Linux; Android 10; SM-A505FN) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.152 Mobile Safari/537.36'
            ]
            return f'{random.choice(user_agents)} {ip}'

    async def main():
        async with aiohttp.ClientSession() as session:
            user_agent = await fetch_user_agent(session)
            print(user_agent)

    asyncio.run(main())