private string QueryHostname(AmsNetId amsNetId) { using (var client = new TcAdsClient(AdsClientSettings.Default)) { client.Connect(amsNetId, AmsPort.SystemService); var stream = new AdsStream(256); var error = client.TryRead(702 /*SYSTEMSERVICE_IPHOSTNAME*/, 0, stream, out int readBytes); if (error != AdsErrorCode.NoError) { _logger.LogWarning("Error {error} query hostname for {amsNetId}.", error, amsNetId); return(null); } var hostname = Encoding.GetEncoding(1252).GetString(stream.GetBuffer(), 0, readBytes - 1); return(hostname); } }