TL; DR :
当我在Windows 7 x64(官方当前的3.6.2二进制文件)下运行dcmqrscp
时,服务器无法识别传入的echoscu
客户端的IP。相反,callingPresentationAddress
的值设置为www
或name_of_localhost
,具体取决于与之关联的以太网接口。
完整说明
dcmqrscp
配置文件的内容:
NetworkTCPPort = 11113
MaxPDUSize = 16384
MaxAssociations = 16
HostTable BEGIN
archive = (ARCHIVE, localhost, 11113)
client1 = (CLIENT1, 146.147.51.82, 12345)
client2 = (CLIENT2, www, 12345)
clients = client1, client2
HostTable END
AETable BEGIN
ARCHIVE c:/tmp/dcm RW (100, 1024mb) clients
AETable END
我在145.146.51.82上从Debian机器连接到服务器:
echoscu -d 146.147.51.30 11113 -aec ARCHIVE -aet CLIENT1
服务器的输出如下:
D: $dcmtk: dcmqrscp v3.6.2 2017-07-14 $
D:
D: setting network send timeout to 60 seconds
D: setting network receive timeout to 60 seconds
D: PDU Type: Associate Request, PDU Length: 205 + 6 bytes PDU header
(...)
D: Parsing an A-ASSOCIATE PDU
I: Association Received (www:CLIENT1 -> ARCHIVE)
D: Parameters:
D: ====================== BEGIN A-ASSOCIATE-RQ =====================
(...)
D: ======================= END A-ASSOCIATE-RQ ======================
D: Peer www:CLIENT1 is not not permitted to access ARCHIVE (see configuration file)
I: Refusing Association (BadAEService)
如果我将echoscu
的呼叫转换为CLIENT2
,则回答是肯定的。这是因为配置文件client2 = (CLIENT2, www, 12345)
如果echoscu
是从同一台Windows计算机运行,而不是localhost
或127.0.0.1
,则callingPresentationAddress
的值为name_of_localhost
。 this question中描述了此问题。
反方向(Windows echoscu
,Debian dcmqrscp
)一切正确:
Association Received (146.147.51.30:CLIENT1 -> ARCHIVE)
我怀疑这个问题与我的Windows配置错误有关,但我不知道应该如何修复它。
答案 0 :(得分:1)
如果主机名与连接到dcmqrscp的系统的IP地址相关联(在本地或通过DNS的相应条目),则此主机名用于匹配在“HostTable”部分中指定的主机名。配置文件。如果此主机名查找不可用(或由dcmqrscp选项-dhl禁用),则使用IP地址。这可能不是很直观,但据我所知,在过去的20 + x年(或左右)中从未发生变化。
有关详细信息,请参阅dcmqrcnf.txt中的文档。