Задать вопрос
@960079587

Как обьденить текст в 1 сообщение?

import shodan
import config
import requests
import traceback
import telebot
from telebot import TeleBot


SHODAN_API_KEY = "PSKINdQe1GyxGgecYz2191H2JoS9qvgD" 
api = shodan.Shodan(SHODAN_API_KEY)

ApiToken = config.API_TOKEN
bot = TeleBot(ApiToken)


def shodan(message):
    try:
        target = message.text

        dnsResolve = 'https://api.shodan.io/dns/resolve?hostnames=' + target + '&key=' + SHODAN_API_KEY

        try:
            # First we need to resolve our targets domain to an IP
            resolved = requests.get(dnsResolve)
            hostIP = resolved.json()[target]
            host = api.host(hostIP)
        
            bot.send_message(message.chat.id,f"IP: %s" % host['ip_str'] + "\n" +"Organization: %s" % host.get('org', 'n/a') + "\n" + "Operating System: %s" % host.get('os', 'n/a'))
            
            for item in host['data']:
                bot.send_message(message.chat.id,"Порты: %s" % item['port'])

         
            for item in host['vulns']:
                CVE = item.replace('!','')
                bot.send_message(message.chat.id,f'Уязвимости: %s' % item)
                exploits = api.exploits.search(CVE)
            
    
        except:
            pass
    except:
        bot.send_message(messege.chat.id,"<code>По Shodan ничего не найдено</code>",parse_mode="html")

Помогите объединить текст в цикле for где вывод портов и уязвимостей

Мне нужно чтобы это было в 1 сообщении а не в 2
5efcfd97e027b481550662.png

Зарание спасибо
  • Вопрос задан
  • 201 просмотр
Подписаться 1 Простой 13 комментариев
Пригласить эксперта
Ответы на вопрос 2
@Trefame
Необходимо циклом записывать в переменную значения, а уже после выводить. В PHP это реализуется с помощью обычной конкатенации, подозреваю, что и в питоне решение поставленной задачи - аналогично.
Ответ написан
Комментировать
@adnim
Во первых SHODAN_API_KEY не светите)

Ответ:

ports = []
for item in host['data']:
    ports.append(item['port'])
bot.send_message(message.chat.id, f"Порты: {ports}" )

Либо:
ports = ""
for item in host['data']:
    ports += str(item['port']) + ", "
bot.send_message(message.chat.id, f"Порты: {ports[:-2]}" )
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы