远程控制报警

远程控制报警

我希望其中一台机器有一个正在运行的远程控制警报,可以由任何远程机器触发。更确切地说

  • 机器A正在后台运行服务
  • 任何远程机器 B 都可以向机器 A 发送数据包来触发警报(称为 的命令alarm

你建议如何做?

我会用nc

  • 机器A上的服务:

    nc -l 1111; alarm
    
  • 机器 B 触发警报

    nc <IP of machine A> 1111
    

我还可以写一些 python 来打开套接字......

答案1

考虑一下这个Python3 例子

服务器A

#!/usr/bin/env python3
# coding=utf8

from subprocess import check_call
from xmlrpc.server import SimpleXMLRPCServer
from xmlrpc.server import SimpleXMLRPCRequestHandler

# Restrict to a particular path
class RequestHandler(SimpleXMLRPCRequestHandler):
    rpc_paths = ('/JRK75WAS5GMOHA9WV8GA48CJ3SG7CHXL',)

# Create server
server = SimpleXMLRPCServer(
    ('127.0.0.1', 8888),
    requestHandler=RequestHandler)

# Register your function
server.register_function(check_call, 'call')

# Run the server's main loop
server.serve_forever()

服务器B

#!/usr/bin/env python3
# coding=utf8

import xmlrpc.client

host = '127.0.0.1'
port = 8888
path = 'JRK75WAS5GMOHA9WV8GA48CJ3SG7CHXL'

# Create client
s = xmlrpc.client.ServerProxy('http://{}:{}/{}'.format(host, port, path))

# Call your function on the remote server
s.call(['alarm'])

相关内容