[(really) OT] find IP address of a pppd

Toby Corkindale tjc at wintrmute.net
Thu Oct 16 04:02:56 BST 2008


On Wed, Oct 15, 2008 at 03:17:05PM +0100, Dirk Koopman wrote:
> Before someone goes off on one, this is not an FAQ which involves reading 
> about if-up/if-down, you may assume that I have done that and understood 
> it.
>
> I have a program (running only on linux 2.6 kernels) which controls one 
> *or* more instances of pppd. Any or all of those pppds could start or stop 
> at any time.
>
> Given the process number of the pppd in question, I want to find out (or be 
> notified [this may be a dbus question]) the ip address assigned to the pppd 
> that has just been started.
>
> If there is more than one pppd being started (which may happen 
> simultaneously - although that, at least, can be controlled), it is very 
> important to me that I get the IP address that pertains to the pppd that is 
> controlling it.
>
> I want to be able to do this from within the program controlling the pppds, 
> preferably without calling any helper programs (eg ifconfig or lsof) or 
> doing any if-up/if-down magic from within pppd. I am presuming that this 
> involves poking around inside /proc and/or /sys.
>
> What I can't seem to find is some pathway from the process id to either the 
> correct device name and then another to the ip(v4) address.

/var/run/ppp*.pid will give you the mapping between process IDs of pppd and
interfaces. (Path might vary between operating systems..)

Getting from ppp1 to 192.168.66.6 or whatever could be done on Linux by parsing
the output of `ip addr show dev ppp1`, but would vary on other OSs. There must
be a CPAN module to do this generically?

Toby

-- 
Turning and turning in the widening gyre/The falcon cannot hear the falconer;
Things fall apart, the centre cannot hold/Mere anarchy is loosed upon the world
(gpg --recv-key B1CCF88E)


More information about the london.pm mailing list