有類似 ARP 的工具,從網(wǎng)絡(luò)分層一直看到 SAP On-Premise 與 ABAP Cloud)
如果正在從ipconfig、tracert一路往下研究到ARP,再回頭看 SAP ABAP,很容易產(chǎn)生一個(gè)非常自然的問(wèn)題,既然操作系統(tǒng)里可以用arp -a查看 IP 地址和 MAC 地址之間的映射,那么 ABAP 里是不是也應(yīng)該有一個(gè)類似的事務(wù)碼、函數(shù)模塊或者類,可以把 SAP 應(yīng)用服務(wù)器當(dāng)前的 ARP 表直接讀出來(lái)。答案需要分環(huán)境來(lái)看。在經(jīng)典的 SAP ABAP On-Premise 系統(tǒng)里,ABAP 沒(méi)有一個(gè)與 Windowsarp -a或 Linuxip neigh完全對(duì)應(yīng)的原生 ABAP 網(wǎng)絡(luò) API,也沒(méi)有一個(gè)標(biāo)準(zhǔn) SAP 事務(wù)專門(mén)充當(dāng) ARP 查看器。不過(guò),因?yàn)榻?jīng)典 AS ABAP 可以通過(guò)受控的 External Command 機(jī)制調(diào)用應(yīng)用服務(wù)器操作系統(tǒng)命令,所以可以利用SM69、SM49和SXPG_COMMAND_EXECUTE間接讀取操作系統(tǒng)的 ARP 或 Neighbor Cache。到了 SAP BTP ABAP Environment,也就是通常所說(shuō)的 Steampunk 或 ABAP Cloud 環(huán)境,情況完全不同。那里沒(méi)有開(kāi)放底層操作系統(tǒng) Shell,也不能把a(bǔ)rp、ip neigh這種宿主機(jī)命令交給 ABAP 程序執(zhí)行。因此在 ABAP Cloud 里,基本不能從應(yīng)用代碼讀取平臺(tái)宿主機(jī)的 ARP 表。這里最關(guān)鍵的一點(diǎn)不是有沒(méi)有找到某個(gè)神秘函數(shù)模塊,而是要理