Как получить IP-адрес, используя язык q - PullRequest
0 голосов
/ 23 января 2019

Я очень плохо знаком с языком q и пытаюсь получить свой IP-адрес с помощью системных команд. Я могу получить его в этом формате 127 0 0 1i используя функцию

getIP:{"i"$0x0 vs .z.a}

Но мне нужен ответ в следующем формате: 127.0.0.1.

Приведение его к символу не даст мне точечный формат. Поэтому я должен использовать неправильную системную команду или неправильный синтаксический анализ!

Ответы [ 3 ]

0 голосов
/ 23 января 2019

Обратите внимание, что вы также можете совершать системные вызовы на устройство, чтобы определить его среду.Вообще говоря, все, что вы можете найти из приглашения linux, вы также можете найти в kdb через системные вызовы.

q)system"hostname -i"
"12.345.6.789"
0 голосов
/ 29 января 2019

Вы можете получить имя хоста из .zh, и передать значение от него получить IP-адрес

`$"." sv string 256 vs  .Q.addr .z.h
0 голосов
/ 23 января 2019

Вы можете использовать .z.a, чтобы получить IP-адрес, но он возвращается как целое число, как вы знаете.Чтобы получить его в нужном формате, вы можете использовать

`$"." sv string 256 vs .z.a

, где 256 vs .z.a превращает его в число 256, а sv соединяет возвращаемые числа с точкой.

возможность использовать базу с vs была добавлена ​​в v3.4 2015.12.13 и поэтому не будет работать в более ранней версии.Вы можете проверить свою версию, используя .z.K.Если вы используете более раннюю версию, тогда вы можете заменить 256 на "h"$0x0.

. Подробнее читайте здесь: https://code.kx.com/q/ref/casting/#vs

...