Networking

遙控報警

  • March 11, 2017

我希望其中一台機器執行遠端控制警報,可以由任何遠端機器觸發。更確切地說

  • 機器 A 正在後台執行服務
  • 任何遠端機器 B 都可以向機器 A 發送數據包以觸發警報(命令稱為alarm

你會建議怎麼做?

我會使用nc

  • 機器 A 上的服務:
nc -l 1111; alarm
  • 機器 B 觸發警報
nc <IP of machine A> 1111

我也可以寫一些python來打開一個套接字……

考慮這個Python3 例子

伺服器甲

#!/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'])

引用自:https://unix.stackexchange.com/questions/349945