aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlemming Thesbjerg <flemming.thesbjerg@gmail.com>2018-12-29 01:48:31 +0100
committerFlemming Thesbjerg <flemming.thesbjerg@gmail.com>2018-12-29 01:48:31 +0100
commita91a28c408a648a951558c87560df70141e0940d (patch)
tree03138e6864529cee2b7e62b599ed215a004a49b6
parent1f0b83c66a9946e12dba48b6457a1424a34ca87f (diff)
re-adds wan ip on dashboard by requesting it from http://ipv4.icanhazip.com
-rw-r--r--CONTRIBUTORS.md1
-rw-r--r--Emby.Server.Implementations/ApplicationHost.cs35
2 files changed, 31 insertions, 5 deletions
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index fd9bab8cc..b390b4441 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -4,6 +4,7 @@
- [nvllsvm](https://github.com/nvllsvm)
- [JustAMan](https://github.com/JustAMan)
- [dcrdev](https://github.com/dcrdev)
+ - [flemse](https://github.com/flemse)
# Emby Contributors
diff --git a/Emby.Server.Implementations/ApplicationHost.cs b/Emby.Server.Implementations/ApplicationHost.cs
index f8dd65bbc..ad15b015d 100644
--- a/Emby.Server.Implementations/ApplicationHost.cs
+++ b/Emby.Server.Implementations/ApplicationHost.cs
@@ -1962,6 +1962,7 @@ namespace Emby.Server.Implementations
public async Task<SystemInfo> GetSystemInfo(CancellationToken cancellationToken)
{
var localAddress = await GetLocalApiUrl(cancellationToken).ConfigureAwait(false);
+ var wanAddress = await GetWanApiUrl(cancellationToken).ConfigureAwait(false);
return new SystemInfo
{
@@ -1984,8 +1985,7 @@ namespace Emby.Server.Implementations
CanSelfRestart = CanSelfRestart,
CanSelfUpdate = CanSelfUpdate,
CanLaunchWebBrowser = CanLaunchWebBrowser,
- // TODO - remove WanAddress
- WanAddress = "0.0.0.0",
+ WanAddress = wanAddress,
HasUpdateAvailable = HasUpdateAvailable,
SupportsAutoRunAtStartup = SupportsAutoRunAtStartup,
TranscodingTempPath = ApplicationPaths.TranscodingTempPath,
@@ -2012,14 +2012,13 @@ namespace Emby.Server.Implementations
public async Task<PublicSystemInfo> GetPublicSystemInfo(CancellationToken cancellationToken)
{
var localAddress = await GetLocalApiUrl(cancellationToken).ConfigureAwait(false);
-
+ var wanAddress = await GetWanApiUrl(cancellationToken).ConfigureAwait(false);
return new PublicSystemInfo
{
Version = ApplicationVersion.ToString(),
Id = SystemId,
OperatingSystem = EnvironmentInfo.OperatingSystem.ToString(),
- // TODO - remove WanAddress
- WanAddress = "0.0.0.0",
+ WanAddress = wanAddress,
ServerName = FriendlyName,
LocalAddress = localAddress
};
@@ -2060,6 +2059,32 @@ namespace Emby.Server.Implementations
return null;
}
+ public async Task<string> GetWanApiUrl(CancellationToken cancellationToken)
+ {
+ var url = "http://ipv4.icanhazip.com";
+ try
+ {
+ using (var response = await HttpClient.Get(new HttpRequestOptions
+ {
+ Url = url,
+ LogErrorResponseBody = false,
+ LogErrors = false,
+ LogRequest = false,
+ TimeoutMs = 10000,
+ BufferContent = false,
+ CancellationToken = cancellationToken
+ }))
+ {
+ return GetLocalApiUrl(response.ReadToEnd().Trim());
+ }
+ }
+ catch(Exception ex)
+ {
+ Logger.ErrorException("Error getting WAN Ip address information", ex);
+ }
+ return null;
+ }
+
public string GetLocalApiUrl(IpAddressInfo ipAddress)
{
if (ipAddress.AddressFamily == IpAddressFamily.InterNetworkV6)