Пример #1
0
 def add_inbound(self, tag, address, port, proxy: Proxy):
     """
     增加传入连接
     :param tag: 此传入连接的标识
     :param address: 监听地址
     :param port: 监听端口
     :param proxy: 代理配置
     """
     stub = command_pb2_grpc.HandlerServiceStub(self._channel)
     try:
         stub.AddInbound(
             command_pb2.AddInboundRequest(
                 inbound=core_config_pb2.InboundHandlerConfig(
                     tag=tag,
                     receiver_settings=to_typed_message(
                         proxyman_config_pb2.ReceiverConfig(
                             port_range=port_pb2.PortRange(
                                 From=port,
                                 To=port,
                             ),
                             listen=address_pb2.IPOrDomain(
                                 ip=ip2bytes(address),  # 4字节或16字节
                             ),
                             allocation_strategy=None,
                             stream_settings=None,
                             receive_original_destination=None,
                             domain_override=None,
                             sniffing_settings=None)),
                     proxy_settings=proxy.message)))
     except _InactiveRpcError as e:
         details = e.details()
         if details.endswith("address already in use"):
             raise AddressAlreadyInUseError(details, port)
         else:
             raise V2RayError(details)
Пример #2
0
def add_inbound(tag):
    channel = grpc.insecure_channel('%s:%s' % (SERVER_ADDRESS, SERVER_PORT))
    stub = command_pb2_grpc.HandlerServiceStub(channel)

    resp = stub.AddInbound(
        command_pb2.AlterInboundRequest(
            inbound=config_pb2.InboundHandlerConfig(
                tag=tag,
                receiver_settings=typed_message_pb2.TypedMessage(
                    type=proxy_config_pb2._RECEIVERCONFIG.full_name,
                    value=proxy_config_pb2.ReceiverConfig(
                        port_range=port_pb2.PortRange(From=30, To=20),
                        listen=None,
                        allocation_strategy=None,
                        stream_settings=None,
                        receive_original_destination=None,
                        domain_override=None).SerializeToString()),
                proxy_settings=typed_message_pb2.TypedMessage(
                    type=command_pb2._ADDUSEROPERATION.full_name,
                    value=command_pb2.RemoveUserOperation(
                        email=email).SerializeToString()),
            )))
    print(resp)