Немного начал разбираться. ppp (FreeBSD) умеет запускать внешние команды при коннекте. У меня следующий конфиг:
pppoe:
enable dns
set dns x.x.x.x
allow mode direct
#set mode direct
allow users
set log Phase
enable lqr
enable chap
# enable utmp
enable proxy
set ifaddr 10.65.3.16 10.65.3.2-10.65.3.254 255.255.255.255
accept dns
set timeout 0
set server /var/tmp/pppuser%d "" 0177
bg /root/devel/test.pl USER HISADDR
В файле /etc/ppp/ppp.secret запись типа
test testpass 10.65.3.25
В результате скрипту test.pl передаются следующие значения:
USER пустое
HISADDR 10.65.3.27 (любой адрес из диапазона 10.65.3.2-10.65.3.254),
хотя на самом деле выдается адрес 10.65.3.25 и имя юзера test
А надо знать имя юзера, авторизованного по PAP и его статический IP-адрес, прописанный в /etc/ppp/ppp.secret