403Webshell
Server IP : 66.29.132.124  /  Your IP : 3.145.42.140
Web Server : LiteSpeed
System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : wavevlvu ( 1524)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /usr/lib64/python2.7/Demo/rpc/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib64/python2.7/Demo/rpc/rnusersclient.py
# Remote nusers client interface

import rpc
from rpc import Packer, Unpacker, UDPClient, BroadcastUDPClient


class RnusersPacker(Packer):
    def pack_utmp(self, ui):
        ut_line, ut_name, ut_host, ut_time = utmp
        self.pack_string(ut_line)
        self.pack_string(ut_name)
        self.pack_string(ut_host)
        self.pack_int(ut_time)
    def pack_utmpidle(self, ui):
        ui_itmp, ui_idle = ui
        self.pack_utmp(ui_utmp)
        self.pack_uint(ui_idle)
    def pack_utmpidlearr(self, list):
        self.pack_array(list, self.pack_itmpidle)


class RnusersUnpacker(Unpacker):
    def unpack_utmp(self):
        ut_line = self.unpack_string()
        ut_name = self.unpack_string()
        ut_host = self.unpack_string()
        ut_time = self.unpack_int()
        return ut_line, ut_name, ut_host, ut_time
    def unpack_utmpidle(self):
        ui_utmp = self.unpack_utmp()
        ui_idle = self.unpack_uint()
        return ui_utmp, ui_idle
    def unpack_utmpidlearr(self):
        return self.unpack_array(self.unpack_utmpidle)


class PartialRnusersClient:

    def addpackers(self):
        self.packer = RnusersPacker()
        self.unpacker = RnusersUnpacker('')

    def Num(self):
        return self.make_call(1, None, None, self.unpacker.unpack_int)

    def Names(self):
        return self.make_call(2, None, \
                None, self.unpacker.unpack_utmpidlearr)

    def Allnames(self):
        return self.make_call(3, None, \
                None, self.unpacker.unpack_utmpidlearr)


class RnusersClient(PartialRnusersClient, UDPClient):

    def __init__(self, host):
        UDPClient.__init__(self, host, 100002, 2)


class BroadcastRnusersClient(PartialRnusersClient, BroadcastUDPClient):

    def __init__(self, bcastaddr):
        BroadcastUDPClient.__init__(self, bcastaddr, 100002, 2)


def test():
    import sys
    if not sys.argv[1:]:
        testbcast()
        return
    else:
        host = sys.argv[1]
    c = RnusersClient(host)
    list = c.Names()
    for (line, name, host, time), idle in list:
        line = strip0(line)
        name = strip0(name)
        host = strip0(host)
        print "%r %r %r %s %s" % (name, host, line, time, idle)

def testbcast():
    c = BroadcastRnusersClient('<broadcast>')
    def listit(list, fromaddr):
        host, port = fromaddr
        print host + '\t:',
        for (line, name, host, time), idle in list:
            print strip0(name),
        print
    c.set_reply_handler(listit)
    all = c.Names()
    print 'Total Count:', len(all)

def strip0(s):
    while s and s[-1] == '\0': s = s[:-1]
    return s

test()

Youez - 2016 - github.com/yon3zu
LinuXploit