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

标签 linux bash shell lan pptp

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

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

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

test pptpd 0802928d37e151f338696d1601040570 *

谢谢!

最佳答案

我阅读了更多内容(几天后),并且有一个 PPTP“数据库”可供您使用。

下面的代码:

#!/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/(.*)\\.*/$1/gi;
            $iplocal = $field;
        }
    }
    if ((defined $name) && (defined $iplocal)) {
        print ("$iplocal        $name\n");
    }
}

我复制了脚本/usr/bin 以便于运行它。样本输出将是这样的:

root@localhost:~# wppp
192.168.0.128        test

希望对大家有所帮助:)

关于linux - 如何知道PPTP服务器自动分配的LAN中的PPTP客户端本地IP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33277909/

相关文章:

c++ - 项目在 Windows 7 上运行,但无法在带有 Virtual Box 的 Linux 上运行

c - nptl SIGCONT 和线程调度

bash - 在(bash)脚本之间传递带有空格的参数

bash - awk 排序多维数组

linux - 使用 tar -cfv 输出 Bash

c++ - 从 c/c++ 代码更改 Linux 用户运行时

linux - 从一个文件中删除另一个文件中的内容

c++ - 允许碰撞的极快哈希函数

php - 尝试使脚本工作以从 php 启动停止 Shoutcast Dnas 和 Shoutcast Transcoder

linux - 适用于 Linux 的随处运行的静态链接 gcc 二进制文件