diff --git a/DearFTP/Configurations/Configuration.cs b/DearFTP/Configurations/Configuration.cs index 725958b..fa4c829 100644 --- a/DearFTP/Configurations/Configuration.cs +++ b/DearFTP/Configurations/Configuration.cs @@ -2,6 +2,7 @@ using System; using System.IO; using System.Linq; +using System.Net; using System.Security.Cryptography.X509Certificates; using YamlDotNet.Serialization; @@ -42,6 +43,16 @@ namespace DearFTP.Configurations public bool Check() { + + if (string.IsNullOrWhiteSpace(Server.Host)) + { + Console.WriteLine("Host address is missing."); + } + if (!IPAddress.TryParse(Server.Host, out var _)) + { + Server.Host = Dns.GetHostEntry(Server.Host).AddressList.First().ToString(); + } + foreach (var share in Shares) { share.Name = Path.GetFileName(share.Path); diff --git a/DearFTP/Configurations/ServerConfiguration.cs b/DearFTP/Configurations/ServerConfiguration.cs index 74d0d81..25ffc49 100644 --- a/DearFTP/Configurations/ServerConfiguration.cs +++ b/DearFTP/Configurations/ServerConfiguration.cs @@ -2,6 +2,7 @@ { class ServerConfiguration { + public string Host { get; set; } = "127.0.0.1"; public ushort Port { get; set; } = 21; public ushort ForceDataPort { get; set; } = 0; public ushort ImplicitFtpsPort { get; set; } = 0; diff --git a/DearFTP/Connection/Commands/PassiveCommand.cs b/DearFTP/Connection/Commands/PassiveCommand.cs index ed7a4f5..e353952 100644 --- a/DearFTP/Connection/Commands/PassiveCommand.cs +++ b/DearFTP/Connection/Commands/PassiveCommand.cs @@ -16,7 +16,7 @@ namespace DearFTP.Connection.Commands int port = session.DataConnection.Port; var portBytes = BitConverter.GetBytes((ushort)port).Reverse().Select(x => x.ToString()); - string remote = string.Join(',', session.IP.Split('.').Concat(portBytes)); + string remote = string.Join(',', session.Configuration.Server.Host.Split('.').Concat(portBytes)); stream.Send(ResponseCode.PassiveMode, $"Entering Passive Mode ({remote})");