Windows下dcmqrscp中的接收值callingPresentationAddress不正确

时间:2018-02-16 16:39:02

标签: dicom dcmtk

TL; DR

当我在Windows 7 x64(官方当前的3.6.2二进制文件)下运行dcmqrscp时,服务器无法识别传入的echoscu客户端的IP。相反,callingPresentationAddress的值设置为wwwname_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计算机运行,而不是localhost127.0.0.1,则callingPresentationAddress的值为name_of_localhostthis question中描述了此问题。

反方向(Windows echoscu,Debian dcmqrscp)一切正确:

Association Received (146.147.51.30:CLIENT1 -> ARCHIVE)

我怀疑这个问题与我的Windows配置错误有关,但我不知道应该如何修复它。

1 个答案:

答案 0 :(得分:1)

如果主机名与连接到dcmqrscp的系统的IP地址相关联(在本地或通过DNS的相应条目),则此主机名用于匹配在“HostTable”部分中指定的主机名。配置文件。如果此主机名查找不可用(或由dcmqrscp选项-dhl禁用),则使用IP地址。这可能不是很直观,但据我所知,在过去的20 + x年(或左右)中从未发生变化。

有关详细信息,请参阅dcmqrcnf.txt中的文档。