Python + Telnet = nicht meine Freunde

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Illu
User
Beiträge: 2
Registriert: Mittwoch 10. Juli 2019, 11:12

Mittwoch 10. Juli 2019, 11:15

Hi Zusammen,

ich bin grundsätzlich C Programmierer hab mir aber ein Script von eienm Freund aufdrücken lassen und muss dies jetzt Fixen in Python..

Kurzer Grundgedanke:
Es geht um einen Teamspeak Bot, welcher die Leute Verifiziert mit einer API.

Das Problem ist, dass ich aktuell nicht einmal bis zum joinen komme, da er mir immer mit der Fehlermeldung:

socket.gaierror: [Errno -2] Name or service not known

kommt...

hat jemand von euch bereits erfahrung mit dieser Verbindung ?

Grüsse

Illu
Benutzeravatar
__blackjack__
User
Beiträge: 3523
Registriert: Samstag 2. Juni 2018, 10:21

Mittwoch 10. Juli 2019, 11:33

@Illu: So ohne Code lässt sich da nicht viel mehr sagen als die letzte Zeile der Ausnahme das tut. Der Name oder Dienst ist nicht bekannt. Wahrscheinlichste Ursachen: Du gibst da etwas falsches an, oder eine Firewall blockt das ganze.
A train station is where trains stop.
A bus station is where busses stop.
A Work Station is where …
Illu
User
Beiträge: 2
Registriert: Mittwoch 10. Juli 2019, 11:12

Mittwoch 10. Juli 2019, 11:37

Das hier wäre die Config Datei

Code: Alles auswählen

# List of server's ids, names and the related TS3 group id
SERVERS = [
    {"id": 2207, "name": "Dzagonur", "group_id": "13"},
    {"id": 2014, "name": "Gunnars Feste", "group_id": "14"},
]

# The API bot's default TS3 channel
CHANNEL_ID = 54

# TS3 virtual server
SERVER_ID = 1

# Login data
CLIENT_NICK = "XXXXX"
CLIENT_USER = "TS3Bot"
CLIENT_PASS = "XXXXX"

# Login data for cycle.py
#CYCLE_USER = "CycleBot"
#CYCLE_PASS = "IRmc1f7d"

# TS3 connection details
QUERY_HOST = "localhost"
TS3_PROTOCOL = "telnet"

# MySQL server
SQL_HOST = "localhost"
SQL_PORT = 3306
SQL_USER = "root"
SQL_PASS = "XXXX"
SQL_DB = "TSBOT"

und hier der erste Teil vom Bot

Code: Alles auswählen

class Bot:
    def __init__(self):
        self.commands = []
        # Register commands
        for _ in commands.__all__:
            mod = import_module("commands.{}".format(_))
            mod.REGEX = re.compile(mod.MESSAGE_REGEX)
            logging.info("Registered command.{}".format(_))
            self.commands.append(mod)

        # Connect to TS3
        self.ts3c = ts3.query.TS3ServerConnection(
            "{}://{}:{}@{}".format(
                config.TS3_PROTOCOL,
                config.CLIENT_USER,
                config.CLIENT_PASS,
                config.QUERY_HOST,
            )
        )
und aufschlagen tut er dann am ende im :

Code: Alles auswählen

    addrlist = []
    _logger.info("Created connection to {}:{}:{}:{}:{}:{}.".format(host, port, family, type, proto, flags))
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
        af, socktype, proto, canonname, sa = res
        addrlist.append((_intenum_converter(af, AddressFamily),
                         _intenum_converter(socktype, SocketKind),
                         proto, canonname, sa))
    _logger.info("Created connection to {}.".format(addrlist))
    return addrlist
welches aber eine std. funktion von dem Package ist.

es laufen alle Dienste auf einem Server..

Den Connection String baut er so auf:

2019-07-10 06:09:11 - ts3.query - INFO - Created connection to telnet://user:passwd@ts.wvwdzagonur.de:None.
2019-07-10 06:09:11 - ts3.query - INFO - Created connection to telnet://user:passwd@ts.wvwdzagonur.de:10011:<object object at 0x7f8591f9b0c0>.
2019-07-10 06:09:11 - socket - INFO - Created connection to telnet://user:passwd@ts.wvwdzagonur.de:10011.
2019-07-10 06:09:11 - socket - INFO - Created connection to telnet://user:passwd@ts.wvwdzagonur.de:10011:0:1:0:0.
Benutzeravatar
__blackjack__
User
Beiträge: 3523
Registriert: Samstag 2. Juni 2018, 10:21

Mittwoch 10. Juli 2019, 12:27

@Illu: Das sind aber INFO-Einträge im Protokoll und da steht auch „Created“, also kommen die anscheinend *nachdem* die Verbindung erstellt wurde. Wo kommt denn nun konkret die Ausnahme und wie sieht der komplette Traceback aus?
A train station is where trains stop.
A bus station is where busses stop.
A Work Station is where …
Antworten