mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-07-03 08:39:53 +00:00
UPnP: expose more functionality
This commit is contained in:
parent
80bf948588
commit
ec7ea98ead
@ -187,14 +187,14 @@ class UPnP{
|
|||||||
return $serviceURL;
|
return $serviceURL;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function portForward(string $serviceURL, int $port) : void{
|
public static function portForward(string $serviceURL, string $internalIP, int $internalPort, int $externalPort) : void{
|
||||||
$body =
|
$body =
|
||||||
'<u:AddPortMapping xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1">' .
|
'<u:AddPortMapping xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1">' .
|
||||||
'<NewRemoteHost></NewRemoteHost>' .
|
'<NewRemoteHost></NewRemoteHost>' .
|
||||||
'<NewExternalPort>' . $port . '</NewExternalPort>' .
|
'<NewExternalPort>' . $externalPort . '</NewExternalPort>' .
|
||||||
'<NewProtocol>UDP</NewProtocol>' .
|
'<NewProtocol>UDP</NewProtocol>' .
|
||||||
'<NewInternalPort>' . $port . '</NewInternalPort>' .
|
'<NewInternalPort>' . $internalPort . '</NewInternalPort>' .
|
||||||
'<NewInternalClient>' . Internet::getInternalIP() . '</NewInternalClient>' .
|
'<NewInternalClient>' . $internalIP . '</NewInternalClient>' .
|
||||||
'<NewEnabled>1</NewEnabled>' .
|
'<NewEnabled>1</NewEnabled>' .
|
||||||
'<NewPortMappingDescription>PocketMine-MP</NewPortMappingDescription>' .
|
'<NewPortMappingDescription>PocketMine-MP</NewPortMappingDescription>' .
|
||||||
'<NewLeaseDuration>0</NewLeaseDuration>' .
|
'<NewLeaseDuration>0</NewLeaseDuration>' .
|
||||||
@ -215,11 +215,11 @@ class UPnP{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function removePortForward(string $serviceURL, int $port) : void{
|
public static function removePortForward(string $serviceURL, int $externalPort) : void{
|
||||||
$body =
|
$body =
|
||||||
'<u:DeletePortMapping xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1">' .
|
'<u:DeletePortMapping xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1">' .
|
||||||
'<NewRemoteHost></NewRemoteHost>' .
|
'<NewRemoteHost></NewRemoteHost>' .
|
||||||
'<NewExternalPort>' . $port . '</NewExternalPort>' .
|
'<NewExternalPort>' . $externalPort . '</NewExternalPort>' .
|
||||||
'<NewProtocol>UDP</NewProtocol>' .
|
'<NewProtocol>UDP</NewProtocol>' .
|
||||||
'</u:DeletePortMapping>';
|
'</u:DeletePortMapping>';
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ final class UPnPNetworkInterface implements NetworkInterface{
|
|||||||
$this->logger->info("Attempting to portforward...");
|
$this->logger->info("Attempting to portforward...");
|
||||||
$this->serviceURL = UPnP::getServiceUrl();
|
$this->serviceURL = UPnP::getServiceUrl();
|
||||||
|
|
||||||
UPnP::portForward($this->serviceURL, $this->port);
|
UPnP::portForward($this->serviceURL, Internet::getInternalIP(), $this->port, $this->port);
|
||||||
|
|
||||||
$this->logger->info("Forwarded $this->ip:$this->port to external port $this->port");
|
$this->logger->info("Forwarded $this->ip:$this->port to external port $this->port");
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user