Busctlとdbusを使ってシステムネットワークのリース情報を読む

Busctlとdbusを使ってシステムネットワークのリース情報を読む

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を使用する必要があります。 )

おすすめ記事