Существует no one-all решение. Каждая программа использует свой собственный способ соединиться с прокси-сервером.
У меня есть подобная проблема в моем офисе. Я нашел, что лучший способ сделать это должно использовать соединение VPN. Когда Вы соединитесь, целый трафик сети системы пройдет VPN. Если у Вас нет доступа к серверу VPN, можно выполнить новый вручную и подключить его к прокси-серверу, который Вы имеете.
Если у Вас есть приложение, которое не поддерживает прокси, можно использовать что-то как socksify, для обертывания его сетевого соединения.
Это собирается перечислить все непетлевые IP-адреса в системе. Принятие Вас только имеет один непетлевой IP-адрес на этом поле, это собирается экспортировать IP-адрес системы к переменной среды "IP".
Запустите путем выполнения конвейера один "раздел" за один раз. Значение, первый показ
/sbin/ifconfig
видеть то, что это делает. Затем выполненный...
/sbin/ifconfig | grep 'inet addr:'
и продолжайте идти оттуда.
Существует большое продолжение. Во-первых:
export IP=`...`
средства выполнить команду между одинарными левыми кавычками (не одинарные кавычки, быть осторожным) и использование это производится как значение переменной, названной "IP". "экспорт" означает, что любые дочерние процессы наследуют переменную, названную "IP" и его значением.
Команда является конвейером, stdout каждого питания в stdin следующего. /sbin/ifconfig
производит список информации о сетевых интерфейсах. Все строки вывода ifconfig питаются в grep 'inet addr:'
. Grep просто передает строки текста через тот по крайней мере частично соответствие первый аргумент, шаблон, названный регулярным выражением.
Команда grep -v '127.0.0.1'
только строки передач текста, которые не соответствуют. 127.0.0.1 "цикл назад" IP-адрес. Это известно, мы не хотим, чтобы это вошло в значение переменной, названной "IP".
Команда cut -d: -f2
печатает второе поле каждой строки в ее входе. Поля разграничены ':' (точки с запятой). awk '{print $1}'
управляйте просто печатает разграниченный столбец первого пробела.
Как TheDude пишет, он помещает все непетлевые IP-адреса как строки в значение IP переменной среды оболочки.
Просто примечание: С тех пор ifconfig обычно отображает больше чем одно соединение (в дополнение к закольцованному соединению), этот код создает единственную строковую переменную с каждым IP-адресом, разделенным от следующего новой строкой. Мой похож на это:
bigbird@sananda:~/pq$ export IP=`/sbin/ifconfig | grep 'inet addr:'|\
grep -v '127.0.0.1'| cut -d: -f2 | awk '{print $1}'`
bigbird@sananda:~/pq$ echo "[${IP}]"
[192.168.126.1
192.168.114.1
192.168.1.2]
bigbird@sananda:~/pq$
Для фактического использования этого для чего-то это, вероятно, имело бы к проанализированному далее (разделяющий строку на новых строках).
Один способ обработать это состоял бы в том, чтобы поместить строки IP-адреса в элементы массива для запуска с:
export IP=($(/sbin/ifconfig | grep 'inet addr:'|grep -v '127.0.0.1'| cut -d: -f2 |\
awk '{printf "%s ", $1}'))
for (( I=0; I<${#IP[@]}; I++ ))
do
echo "${I} [${IP[${I}]}]"
done
bigbird@sananda:~/bin$ mytest
0 [192.168.126.1]
1 [192.168.114.1]
2 [192.168.1.2]
bigbird@sananda:~/bin$
Добавленные parens () превращают вывод в элементы массива. Печать была изменена на printf, чтобы добавить пробел (символ разделителя удара по умолчанию) после каждого IP и устранить новые строки. Нотация обратной галочки:
`...`
для того, чтобы превратить вывод команды в строку был также заменен более новым $ синтаксиса (...).
Для цикла включен только для показа результатов и одного способа получить доступ к ним.