1

スタックオーバーフロー メンバーの皆さん、こんにちは。VPN 接続が変更されたかどうかを確認するシェル スクリプトが必要です。変更された場合 (vpn が切断された場合)、ネットワークは無効になり、データは送信できなくなります。したがって、IP リークは発生しません。私はすでに多くのサイトをチェックしており、興味深い python スクリプトを見つけました。ここにあります:

#!/usr/bin/env python

#
# licensed under GNU General Public License version 2
#

import sys
import traceback

import gobject

import dbus
import dbus.decorators
import dbus.mainloop.glib

import os

def catchall_signal_handler(*args, **kwargs):
    print ("Caught signal: "+ kwargs['member'])
    if args[0] >= 6: #vpn disconnect (6) or failure (7)
        print ("Killing internet connection...")
    #set eth0 to your network adapter
        os.system('ifconfig eth0 down')
    #if you are using python 3 no raw_input() exists so use input()
    raw_input("Press Enter to enable your network adapter...")
    #set eth0 to your network adapter
    os.system('ifconfig eth0 up')
     print ("Your network adapter has been enabled.")   

if __name__ == '__main__':
    dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
    print ("Monitoring your VPN connection...")
    bus = dbus.SystemBus()

    #lets make a catchall
    bus.add_signal_receiver(catchall_signal_handler, signal_name='VpnStateChanged', interface_keyword='dbus_interface', member_keyword='member')

    loop = gobject.MainLoop()
    loop.run()

問題は、1回しか機能しないように見えることです。本当に変です。ですから、問題がどこにあるのか専門家としてお尋ねします。誰かがより最適化された別のスクリプトも持っているなら、私はとても感謝しています!

前もって感謝します!

敬具、

4

0 に答える 0