Я пытаюсь запустить скрипт, который отправляет трафик c с 2 или 3 IP-адресов одновременно. Я установил скрипт на платформе GCE под управлением Ubuntu. Я использую aiohttp для асинхронной отправки масштабируемого количества запросов X на конечную точку specfi c.
def fetch(url_query, session):
#build URL query
async with session.get(search_query_feed_url, headers=headers) as response:
response_string = await response.text()
return response_string
.................
.................
.................
async def fetch_all(kw_list, loop, num_connections):
connector = TCPConnector(limit=num_connections) #local testing method
async with ClientSession(loop=loop, connector=connector) as session:
results = await asyncio.gather(*[fetch(query_argument, session) for kw in kw_list], return_exceptions=False) #run awaitable functions concurrently
return results
Что я хочу, это через определенный промежуток времени переключать сетевую карту моего компьютера использует для отправки и получения трафика c. В моей (предположительно для начинающих) настройке GCE у меня развернут экземпляр виртуальной машины, подключенный к нескольким сетям VP C, каждая из которых имеет свой собственный определенный внешний IP-адрес. Подтверждено, что к моему экземпляру подключено несколько сетевых карт, и я вижу внутренний IP-адрес, по которому они вещают. Как бы я go определил в приведенном выше коде, какой NI C использовать для запросов?
Вначале я пытался установить аргумент local_addr
для TCPConnector как внутреннего IP-адреса сетевого интерфейса. сам. Это, похоже, не работает, поскольку конечная точка этого эксперимента показывает, что запрос поступает с того же внешнего IP-адреса, что и всегда (по умолчанию).
Я немного новичок в использовании нескольких IP-адресов на одном компьютере. поэтому мой Лин go может быть не верным. Любые указатели здесь будут оценены.