LittleDemon WebShell


Linux server27.hostingraja.org 2.6.32-954.3.5.lve1.4.93.el6.x86_64 #1 SMP Wed Oct 4 17:04:29 UTC 2023 x86_64
Path : /opt/imunify360/venv/share/imunify360/scripts/
File Upload :
Command :
Current File : //opt/imunify360/venv/share/imunify360/scripts/remote_iplist.py

#!/opt/imunify360/venv/bin/python3
"""
Usage: /opt/imunify360/venv/bin/python3 remote_iplist.py
"""

import argparse
import asyncio
import json
import sys

from defence360agent.contracts.config import Model
from defence360agent.internals import logger
from defence360agent.model import instance, tls_check
from defence360agent.utils.benchmark import Benchmark
from im360.files import WHITELISTS, Index
from im360.internals.core import ip_versions
from im360.plugins.resident.remote_iplist import RemoteIPListPlugin


def parse_args() -> argparse.Namespace:
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "-j",
        "--json",
        action="store_true",
        help="output more information in JSON format",
    )
    return parser.parse_args()


def setup_environment():
    logger.reconfigure()
    ip_versions.init()
    instance.db.init(Model.PATH)
    instance.db.execute_sql(
        "ATTACH '{}' AS resident".format(Model.RESIDENT_PATH)
    )
    Index.add_type(WHITELISTS, "whitelist/v2", 0o770, 0o660, all_zip=True)


async def run(args: argparse.Namespace) -> None:
    try:
        plugin = RemoteIPListPlugin()
        with Benchmark() as bench:
            (
                total_blocked_count,
                total_unblocked_count,
                sync_point,
                delay_s,
            ) = await plugin.do_single_update()

        if args.json:
            print(
                json.dumps(
                    {
                        "unblocked": total_unblocked_count,
                        "blocked": total_blocked_count,
                        "sync_point": sync_point,
                        "elapsed": bench.elapsed_time_ms,
                        "delay": delay_s,
                    },
                    indent=True,
                )
            )
        else:
            print(delay_s)

    except Exception as ex:
        print(ex, file=sys.stderr)


def main():
    args = parse_args()
    loop = asyncio.get_event_loop()
    tls_check.reset()
    setup_environment()
    loop.run_until_complete(run(args))


if __name__ == "__main__":
    main()

LittleDemon - FACEBOOK
[ KELUAR ]