如何知道PPTP服务器自动分配的LAN中的PPTP客户端本地IP?

How to know PPTP client local IP in a LAN assigned automatically by PPTP server?

我已将我的 PPTP 服务器配置为自动为客户端分配 IP。

我想知道分配给特定用户的当前本地 IP 是多少。我实际上有一个脚本来确定远程 IP,但实际上我没有找到找到 LAN IP 的方法。

这是 CHAP 文件中的示例行,如您所见,IP 是自动分配的:

test pptpd 0802928d37e151f338696d1601040570 *

谢谢!

我又读了一点(几天后),有一个 PPTP "database" 可以用来做这件事。

代码如下:

#!/usr/bin/perl -w

@line = `/usr/bin/tdbdump /var/run/pppd2.tdb |grep "PEERNAME="`;
foreach $user (@line) {
    chomp ($user);
    undef $name;
    undef $iplocal;
    @record = split (/\;/, $user);

    foreach $field (@record) {
        if ($field =~ /PEERNAME/) {
            $field =~ s/PEERNAME\=//gi;
            $name = $field;
        }
        if ($field =~ /IPREMOTE/) {
            $field =~ s/IPREMOTE\=//gi;
            $field =~ s/(.*)\.*//gi;
            $iplocal = $field;
        }
    }
    if ((defined $name) && (defined $iplocal)) {
        print ("$iplocal        $name\n");
    }
}

我很容易将脚本 /usr/bin 复制到 运行。样本输出将是这样的:

root@localhost:~# wppp
192.168.0.128        test

希望对大家有所帮助:)