Получить цвет вывода терминала / цвет возвращаемого текста - PullRequest
1 голос
/ 03 июня 2019

В настоящее время я пытаюсь автоматизировать простой тест считывания цвета. Я подключаюсь к сервису с помощью nc, и он дает мне текст определенного цвета, а затем предлагает пользователю назвать цветной текст выше.

Это будет выглядеть примерно так: Северная Каролина Вот твой цвет: цвет! (например, зеленый)

> зеленый

OK!

Вот ваш цвет: цвет! (например, синий)

> красный

ОШИБКА! НЕ ОК!

выход ...

Мой текущий код выглядит примерно так, но я не знаю, как его реализовать.


    #!/usr/bin/python
    import sys
    import socket
    from pwn import *

    hostname='ip'
    port=777

    r = remote(hostname, port)

    def recv(string):
            print r.recv()
            print r.recvuntil(string)

    def send(string):
            print r.send(string)

    #Loop through orders and check for order
    while True:

            recv("Here is your color:")
            color=r.recvuntil("color!") #Receive color
            print "Color is:" + command
            recv(">") #Receive until input prompt

            if color=green: #Check which color
                    send("green")
            else:
                    send("else")

Решение должно заставить его работать бесконечно, без необходимости что-либо подсказывать пользователю.

1 Ответ

0 голосов
/ 04 июня 2019

Решено сейчас.Я нашел цвет, напечатав необработанную версию полученной строки.

repr(color)

Для зеленого текста это получилось:

\ x1b [92mGreen

Тогда я просто проверил, есть ли в строке идентификатор цвета (\ x1b [92m).

...