Linuxの特定のリンクに関するsystemd netowrkdリース情報を読むために、Busctlを使用したいと思います。
私のシステムでbusctl tree
ネットワークインターフェースを見ることができます。
Service org.freedesktop.resolve1:
└─/org
└─/org/freedesktop
├─/org/freedesktop/LogControl1
└─/org/freedesktop/resolve1
├─/org/freedesktop/resolve1/dnssd
└─/org/freedesktop/resolve1/link
├─/org/freedesktop/resolve1/link/_31
├─/org/freedesktop/resolve1/link/_32
├─/org/freedesktop/resolve1/link/_33
├─/org/freedesktop/resolve1/link/_34
├─/org/freedesktop/resolve1/link/_35
├─/org/freedesktop/resolve1/link/_36
├─/org/freedesktop/resolve1/link/_37
├─/org/freedesktop/resolve1/link/_38
└─/org/freedesktop/resolve1/link/_39
リンクインターフェイスを確認すると、読みたいDHCPサーバ名が表示されます。
busctl introspect org.freedesktop.network1 /org/freedesktop/network1/link/_35
NAME TYPE SIGNATURE RESULT/VALUE FLAGS
org.freedesktop.DBus.Introspectable interface - - -
.Introspect method - s -
org.freedesktop.DBus.Peer interface - - -
.GetMachineId method - s -
.Ping method - - -
org.freedesktop.DBus.Properties interface - - -
.Get method ss v -
.GetAll method s a{sv} -
.Set method ssv - -
.PropertiesChanged signal sa{sv}as - -
org.freedesktop.network1.DHCPServer interface - - -
.Leases property a(uayayayayt) 2 2 7 1 174 229 169 184 21 41 4 10 10 1… emits-change
org.freedesktop.network1.Link interface - - -
.Describe method - s -
.ForceRenew method - - -
.Reconfigure method - - -
.Renew method - - -
.RevertDNS method - - -
.RevertNTP method - - -
.SetDNS method a(iay) - -
.SetDNSEx method a(iayqs) - -
.SetDNSOverTLS method s - -
.SetDNSSEC method s - -
.SetDNSSECNegativeTrustAnchors method as - -
.SetDefaultRoute method b - -
.SetDomains method a(sb) - -
.SetLLMNR method s - -
.SetMulticastDNS method s - -
.SetNTP method as - -
.AddressState property s "routable" emits-change
.AdministrativeState property s "configured" emits-change
.BitRates property (tt) 18446744073709551615 184467440737095516… -
.CarrierState property s "carrier" emits-change
.IPv4AddressState property s "routable" emits-change
.IPv6AddressState property s "degraded" emits-change
.OnlineState property s "online" emits-change
.OperationalState property s "routable" emits-change
Leases メソッドを呼び出せないようです。
busctl call org.freedesktop.network1 /org/freedesktop/network1/link/_35 org.freedesktop.network1.DHCPServer Leases
Call failed: Unknown method Leases or interface org.freedesktop.network1.DHCPServer.
ここで私が間違っているとリース情報をどのように読みますか?ありがとうございます。
答え1
表に示すように、Leases
これは方法ではありません。財産。それを読んでいましたbusctl get-property
。
busctl get-property org.freedesktop.network1 \
/org/freedesktop/network1/link/_35 \
org.freedesktop.network1.DHCPServer \
Leases
プロパティは、インターフェイスの下でメソッドを呼び出してアクセスされますorg.freedesktop.DBus.Properties
。たとえば、「get-property」が呼び出され、Get(interface, property)
「introspect」を使用できますGetAll(interface)
。
busctl call org.freedesktop.network1 \
/org/freedesktop/network1/link/_35 \
org.freedesktop.DBus.Properties \
Get \
ss \
org.freedesktop.network1.DHCPServer \
Leases
(この不動産には発行されたリース契約が含まれていることを覚えておいてください。渡すネットワークはDHCPサーバーとして機能します。 Networkd は、クライアントとして受信するリースへの D-Bus アクセスを提供しません。 /runからファイルを読み取るC APIを使用する必要があります。 )