LINUX.ORG.RU

как правильно использовать execl


0

0

есть программа которая работает в фоне и слушает некий порт при посылке на этот порт некой комбинации логин и пароль в iptables тожна прписываться цепочка
iptables -t nat PREROUTING -p tcp --dport 80 -s 192.168.0.4 -d ! 192.168.0.1 REDIRECT --to-ports 3128

но при execl("/sbin/iptables","iptables",s_t,s_table,"-D",s_chain,s_p,s_prot,s_prt,s_p ort,s_src,s_source,s_dst,s_destination,"-j",s_right,s_right_opt,s_ropt,NULL);
он пишет что iptables неправильно задан параметр !192.168.0.1 понятно что нехватает пробела но как его добавить


>понятно что нехватает пробела но как его добавить
передать "!" и адресс в качестве разных параметров

fghj ★★★★★
()
Ответ на: комментарий от fghj

немного неправильно написал
вызываю вот так
execl("/sbin/iptables","iptables","-t","nat","-A","PREROUTING","-p","tcp","--dp ort","80","-s",ip,"-d","!",lo_ip,"-j","REDIRECT","--to-ports","3128",NULL);
пробовал вставлять между ! и lo_ip " "
но не помогает

rh9
() автор топика
Ответ на: комментарий от AGUtilities

sh
строку
/sbin/iptables -t nat -A PREROUTING -p tcp --dport 80 -s 192.168.0.4 -d ! 192.168.0.1 -j REDIRECT --to-ports 3128
проглатывает

rh9
() автор топика
Ответ на: комментарий от rh9

да забыл без
execl без ! 192.168.0.1 работает нормально

rh9
() автор топика
Ответ на: комментарий от rh9

>пробовал вставлять между ! и lo_ip " " но не помогает

Я бы попробовал добавить пробелы к восклицательному знаку: "-d"," ! ",lo_ip

php-coder ★★★★★
()
Ответ на: комментарий от php-coder

Всем спасибо за помощь, все оказалось намного проще просто он ругадся не на пробел а на неправильное использование операторов но зачем он в сообщение выводил знак ! непонятно что и збило с толку
просто я при использовании execl выводил строку, ip в виде char а каждая строка ведь заканчивается нулем, он брал этот нуль и дальше текст не продолжал
все исправил sprintf

rh9
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.