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를 사용해야 합니다. )

관련 정보