-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Fixhancement: add an option to fritzbox widget to display IPv6 #4778
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Thank you for the contribution however we’re not going to accept this at the moment. Please review the contributing guidelines, which really are designed to prevent maintenance burden for things only a small subset of users want for example in this case, apparently just yourself. In this case specifically there’s really no way for us to test or verify if issues come up (and when it comes to networking stuff like this I think that seems very possible). If you’d like to open a feature request as the guidelines require, and there is some general interest in this we would be happy to readdress. thank you for your interest in contributing |
I am just willing to improve an existing widget, with minor additions that don't bring any new dependencies or logic that have to be maintained. The only thing that has to be maintained is translations. I have invested many hours of my time not to just rise an issue, but also to investigate and solve it. Now willing to share it with the community. I understand that you don't have a router, of course, I have tested it myself. If you need logs or screenshots, that would be a more reasonable request. Also, it's hard to describe, is it a bugfix because I fixed the missing IP address? Probably not because I haven't fixed it. Saying that there is no interest, kills my interest in giving back :/ Poorly described discussed (no idea what extra I should write), just to be linked #4779. |
I do take issue with the assertion that there will be no extra maintenance, to be honest after doing this kinda thing for a while I’m convinced that there really is no such thing. Especially given the sort of confusing networking choices made by fritzbox I expect there will at least be questions. But I see your point that this could be considered more of a bugfix for example your situation where there simply is no ipv4. So I’ll re-open this, thanks for your understanding. Two things:
|
c3ef48a
to
a6b5e3e
Compare
Thank you for your understanding too, I can understand your point as well. I have removed translations from my commit. Let me describe my changes step-by-step:
curl -s -H 'Content-Type: text/xml; charset="utf-8"' \
-H 'SOAPAction: urn:schemas-upnp-org:service:WANIPConnection:1#GetExternalIPAddress' \
--data-binary '<?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:GetExternalIPAddress xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" /></s:Body></s:Envelope>' \
http://fritz.box:49000/igdupnp/control/WANIPConn1 The response I receive: <?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<u:GetExternalIPAddressResponse xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1">
<NewExternalIPAddress></NewExternalIPAddress>
</u:GetExternalIPAddressResponse>
</s:Body>
</s:Envelope> We can see
igddesc.xml
<root
xmlns="urn:schemas-upnp-org:device-1-0">
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<device>
<deviceType>urn:schemas-upnp-org:device:InternetGatewayDevice:1</deviceType>
<friendlyName>FRITZ!Box 7590 AX</friendlyName>
<manufacturer>AVM Berlin</manufacturer>
<manufacturerURL>http://www.avm.de</manufacturerURL>
<modelDescription>FRITZ!Box 7590 AX</modelDescription>
<modelName>FRITZ!Box 7590 AX</modelName>
<modelNumber>7590avm</modelNumber>
<modelURL>http://www.avm.de</modelURL>
<UDN>censored</UDN>
<iconList>
<icon>
<mimetype>image/gif</mimetype>
<width>118</width>
<height>119</height>
<depth>8</depth>
<url>/ligd.gif</url>
</icon>
</iconList>
<serviceList>
<service>
<serviceType>urn:schemas-any-com:service:Any:1</serviceType>
<serviceId>urn:any-com:serviceId:any1</serviceId>
<controlURL>/igdupnp/control/any</controlURL>
<eventSubURL>/igdupnp/control/any</eventSubURL>
<SCPDURL>/any.xml</SCPDURL>
</service>
</serviceList>
<deviceList>
<device>
<deviceType>urn:schemas-upnp-org:device:WANDevice:1</deviceType>
<friendlyName>WANDevice - FRITZ!Box 7590 AX</friendlyName>
<manufacturer>AVM Berlin</manufacturer>
<manufacturerURL>www.avm.de</manufacturerURL>
<modelDescription>WANDevice - FRITZ!Box 7590 AX</modelDescription>
<modelName>WANDevice - FRITZ!Box 7590 AX</modelName>
<modelNumber>7590avm</modelNumber>
<modelURL>www.avm.de</modelURL>
<UDN>censored</UDN>
<UPC>AVM IGD</UPC>
<serviceList>
<service>
<serviceType>urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1</serviceType>
<serviceId>urn:upnp-org:serviceId:WANCommonIFC1</serviceId>
<controlURL>/igdupnp/control/WANCommonIFC1</controlURL>
<eventSubURL>/igdupnp/control/WANCommonIFC1</eventSubURL>
<SCPDURL>/igdicfgSCPD.xml</SCPDURL>
</service>
</serviceList>
<deviceList>
<device>
<deviceType>urn:schemas-upnp-org:device:WANConnectionDevice:1</deviceType>
<friendlyName>WANConnectionDevice - FRITZ!Box 7590 AX</friendlyName>
<manufacturer>AVM Berlin</manufacturer>
<manufacturerURL>www.avm.de</manufacturerURL>
<modelDescription>WANConnectionDevice - FRITZ!Box 7590 AX</modelDescription>
<modelName>WANConnectionDevice - FRITZ!Box 7590 AX</modelName>
<modelNumber>7590avm</modelNumber>
<modelURL>www.avm.de</modelURL>
<UDN>censored</UDN>
<UPC>AVM IGD</UPC>
<serviceList>
<service>
<serviceType>urn:schemas-upnp-org:service:WANDSLLinkConfig:1</serviceType>
<serviceId>urn:upnp-org:serviceId:WANDSLLinkC1</serviceId>
<controlURL>/igdupnp/control/WANDSLLinkC1</controlURL>
<eventSubURL>/igdupnp/control/WANDSLLinkC1</eventSubURL>
<SCPDURL>/igddslSCPD.xml</SCPDURL>
</service>
<service>
<serviceType>urn:schemas-upnp-org:service:WANIPConnection:1</serviceType>
<serviceId>urn:upnp-org:serviceId:WANIPConn1</serviceId>
<controlURL>/igdupnp/control/WANIPConn1</controlURL>
<eventSubURL>/igdupnp/control/WANIPConn1</eventSubURL>
<SCPDURL>/igdconnSCPD.xml</SCPDURL>
</service>
<service>
<serviceType>urn:schemas-upnp-org:service:WANIPv6FirewallControl:1</serviceType>
<serviceId>urn:upnp-org:serviceId:WANIPv6Firewall1</serviceId>
<controlURL>/igd2upnp/control/WANIPv6Firewall1</controlURL>
<eventSubURL>/igd2upnp/control/WANIPv6Firewall1</eventSubURL>
<SCPDURL>/igd2ipv6fwcSCPD.xml</SCPDURL>
</service>
</serviceList>
</device>
</deviceList>
</device>
</deviceList>
<presentationURL>http://[2a00:censored]</presentationURL>
</device>
</root> igdconnSCPD.xml
<scpd
xmlns="urn:schemas-upnp-org:service-1-0">
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<actionList>
<action>
<name>SetConnectionType</name>
<argumentList>
<argument>
<name>NewConnectionType</name>
<direction>in</direction>
<relatedStateVariable>ConnectionType</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetConnectionTypeInfo</name>
<argumentList>
<argument>
<name>NewConnectionType</name>
<direction>out</direction>
<relatedStateVariable>ConnectionType</relatedStateVariable>
</argument>
<argument>
<name>NewPossibleConnectionTypes</name>
<direction>out</direction>
<relatedStateVariable>PossibleConnectionTypes</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetAutoDisconnectTime</name>
<argumentList>
<argument>
<name>NewAutoDisconnectTime</name>
<direction>out</direction>
<relatedStateVariable>AutoDisconnectTime</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetIdleDisconnectTime</name>
<argumentList>
<argument>
<name>NewIdleDisconnectTime</name>
<direction>out</direction>
<relatedStateVariable>IdleDisconnectTime</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>RequestConnection</name>
</action>
<action>
<name>RequestTermination</name>
</action>
<action>
<name>ForceTermination</name>
</action>
<action>
<name>GetStatusInfo</name>
<argumentList>
<argument>
<name>NewConnectionStatus</name>
<direction>out</direction>
<relatedStateVariable>ConnectionStatus</relatedStateVariable>
</argument>
<argument>
<name>NewLastConnectionError</name>
<direction>out</direction>
<relatedStateVariable>LastConnectionError</relatedStateVariable>
</argument>
<argument>
<name>NewUptime</name>
<direction>out</direction>
<relatedStateVariable>Uptime</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetNATRSIPStatus</name>
<argumentList>
<argument>
<name>NewRSIPAvailable</name>
<direction>out</direction>
<relatedStateVariable>RSIPAvailable</relatedStateVariable>
</argument>
<argument>
<name>NewNATEnabled</name>
<direction>out</direction>
<relatedStateVariable>NATEnabled</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetGenericPortMappingEntry</name>
<argumentList>
<argument>
<name>NewPortMappingIndex</name>
<direction>in</direction>
<relatedStateVariable>PortMappingNumberOfEntries</relatedStateVariable>
</argument>
<argument>
<name>NewRemoteHost</name>
<direction>out</direction>
<relatedStateVariable>RemoteHost</relatedStateVariable>
</argument>
<argument>
<name>NewExternalPort</name>
<direction>out</direction>
<relatedStateVariable>ExternalPort</relatedStateVariable>
</argument>
<argument>
<name>NewProtocol</name>
<direction>out</direction>
<relatedStateVariable>PortMappingProtocol</relatedStateVariable>
</argument>
<argument>
<name>NewInternalPort</name>
<direction>out</direction>
<relatedStateVariable>InternalPort</relatedStateVariable>
</argument>
<argument>
<name>NewInternalClient</name>
<direction>out</direction>
<relatedStateVariable>InternalClient</relatedStateVariable>
</argument>
<argument>
<name>NewEnabled</name>
<direction>out</direction>
<relatedStateVariable>PortMappingEnabled</relatedStateVariable>
</argument>
<argument>
<name>NewPortMappingDescription</name>
<direction>out</direction>
<relatedStateVariable>PortMappingDescription</relatedStateVariable>
</argument>
<argument>
<name>NewLeaseDuration</name>
<direction>out</direction>
<relatedStateVariable>PortMappingLeaseDuration</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetSpecificPortMappingEntry</name>
<argumentList>
<argument>
<name>NewRemoteHost</name>
<direction>in</direction>
<relatedStateVariable>RemoteHost</relatedStateVariable>
</argument>
<argument>
<name>NewExternalPort</name>
<direction>in</direction>
<relatedStateVariable>ExternalPort</relatedStateVariable>
</argument>
<argument>
<name>NewProtocol</name>
<direction>in</direction>
<relatedStateVariable>PortMappingProtocol</relatedStateVariable>
</argument>
<argument>
<name>NewInternalPort</name>
<direction>out</direction>
<relatedStateVariable>InternalPort</relatedStateVariable>
</argument>
<argument>
<name>NewInternalClient</name>
<direction>out</direction>
<relatedStateVariable>InternalClient</relatedStateVariable>
</argument>
<argument>
<name>NewEnabled</name>
<direction>out</direction>
<relatedStateVariable>PortMappingEnabled</relatedStateVariable>
</argument>
<argument>
<name>NewPortMappingDescription</name>
<direction>out</direction>
<relatedStateVariable>PortMappingDescription</relatedStateVariable>
</argument>
<argument>
<name>NewLeaseDuration</name>
<direction>out</direction>
<relatedStateVariable>PortMappingLeaseDuration</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>AddPortMapping</name>
<argumentList>
<argument>
<name>NewRemoteHost</name>
<direction>in</direction>
<relatedStateVariable>RemoteHost</relatedStateVariable>
</argument>
<argument>
<name>NewExternalPort</name>
<direction>in</direction>
<relatedStateVariable>ExternalPort</relatedStateVariable>
</argument>
<argument>
<name>NewProtocol</name>
<direction>in</direction>
<relatedStateVariable>PortMappingProtocol</relatedStateVariable>
</argument>
<argument>
<name>NewInternalPort</name>
<direction>in</direction>
<relatedStateVariable>InternalPort</relatedStateVariable>
</argument>
<argument>
<name>NewInternalClient</name>
<direction>in</direction>
<relatedStateVariable>InternalClient</relatedStateVariable>
</argument>
<argument>
<name>NewEnabled</name>
<direction>in</direction>
<relatedStateVariable>PortMappingEnabled</relatedStateVariable>
</argument>
<argument>
<name>NewPortMappingDescription</name>
<direction>in</direction>
<relatedStateVariable>PortMappingDescription</relatedStateVariable>
</argument>
<argument>
<name>NewLeaseDuration</name>
<direction>in</direction>
<relatedStateVariable>PortMappingLeaseDuration</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>DeletePortMapping</name>
<argumentList>
<argument>
<name>NewRemoteHost</name>
<direction>in</direction>
<relatedStateVariable>RemoteHost</relatedStateVariable>
</argument>
<argument>
<name>NewExternalPort</name>
<direction>in</direction>
<relatedStateVariable>ExternalPort</relatedStateVariable>
</argument>
<argument>
<name>NewProtocol</name>
<direction>in</direction>
<relatedStateVariable>PortMappingProtocol</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>GetExternalIPAddress</name>
<argumentList>
<argument>
<name>NewExternalIPAddress</name>
<direction>out</direction>
<relatedStateVariable>ExternalIPAddress</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>X_AVM_DE_GetExternalIPv6Address</name>
<argumentList>
<argument>
<name>NewExternalIPv6Address</name>
<direction>out</direction>
<relatedStateVariable>ExternalIPv6Address</relatedStateVariable>
</argument>
<argument>
<name>NewPrefixLength</name>
<direction>out</direction>
<relatedStateVariable>PrefixLength</relatedStateVariable>
</argument>
<argument>
<name>NewValidLifetime</name>
<direction>out</direction>
<relatedStateVariable>ValidLifetime</relatedStateVariable>
</argument>
<argument>
<name>NewPreferedLifetime</name>
<direction>out</direction>
<relatedStateVariable>PreferedLifetime</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>X_AVM_DE_GetIPv6Prefix</name>
<argumentList>
<argument>
<name>NewIPv6Prefix</name>
<direction>out</direction>
<relatedStateVariable>IPv6Prefix</relatedStateVariable>
</argument>
<argument>
<name>NewPrefixLength</name>
<direction>out</direction>
<relatedStateVariable>PrefixLength</relatedStateVariable>
</argument>
<argument>
<name>NewValidLifetime</name>
<direction>out</direction>
<relatedStateVariable>ValidLifetime</relatedStateVariable>
</argument>
<argument>
<name>NewPreferedLifetime</name>
<direction>out</direction>
<relatedStateVariable>PreferedLifetime</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>X_AVM_DE_GetDNSServer</name>
<argumentList>
<argument>
<name>NewIPv4DNSServer1</name>
<direction>out</direction>
<relatedStateVariable>IPv4DNSServer1</relatedStateVariable>
</argument>
<argument>
<name>NewIPv4DNSServer2</name>
<direction>out</direction>
<relatedStateVariable>IPv4DNSServer2</relatedStateVariable>
</argument>
</argumentList>
</action>
<action>
<name>X_AVM_DE_GetIPv6DNSServer</name>
<argumentList>
<argument>
<name>NewIPv6DNSServer1</name>
<direction>out</direction>
<relatedStateVariable>IPv6DNSServer1</relatedStateVariable>
</argument>
<argument>
<name>NewValidLifetime1</name>
<direction>out</direction>
<relatedStateVariable>ValidLifetime1</relatedStateVariable>
</argument>
<argument>
<name>NewIPv6DNSServer2</name>
<direction>out</direction>
<relatedStateVariable>IPv6DNSServer2</relatedStateVariable>
</argument>
<argument>
<name>NewValidLifetime</name>
<direction>out</direction>
<relatedStateVariable>ValidLifetime2</relatedStateVariable>
</argument>
</argumentList>
</action>
</actionList>
<serviceStateTable>
<stateVariable sendEvents="no">
<name>ConnectionType</name>
<dataType>string</dataType>
<defaultValue>Unconfigured</defaultValue>
</stateVariable>
<stateVariable sendEvents="yes">
<name>PossibleConnectionTypes</name>
<dataType>string</dataType>
<allowedValueList>
<allowedValue>Unconfigured</allowedValue>
<allowedValue>IP_Routed</allowedValue>
<allowedValue>IP_Bridged</allowedValue>
</allowedValueList>
</stateVariable>
<stateVariable sendEvents="yes">
<name>ConnectionStatus</name>
<dataType>string</dataType>
<defaultValue>Unconfigured</defaultValue>
<allowedValueList>
<allowedValue>Unconfigured</allowedValue>
<allowedValue>Connecting</allowedValue>
<allowedValue>Authenticating</allowedValue>
<allowedValue>Connected</allowedValue>
<allowedValue>PendingDisconnect</allowedValue>
<allowedValue>Disconnecting</allowedValue>
<allowedValue>Disconnected</allowedValue>
</allowedValueList>
</stateVariable>
<stateVariable sendEvents="no">
<name>Uptime</name>
<dataType>ui4</dataType>
<defaultValue>0</defaultValue>
<allowedValueRange>
<minimum>0</minimum>
<maximum>4294967295</maximum>
<step>1</step>
</allowedValueRange>
</stateVariable>
<stateVariable sendEvents="no">
<name>RSIPAvailable</name>
<dataType>boolean</dataType>
<defaultValue>0</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>NATEnabled</name>
<dataType>boolean</dataType>
<defaultValue>1</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>LastConnectionError</name>
<dataType>string</dataType>
<defaultValue>ERROR_NONE</defaultValue>
<allowedValueList>
<allowedValue>ERROR_NONE</allowedValue>
<allowedValue>ERROR_ISP_TIME_OUT</allowedValue>
<allowedValue>ERROR_COMMAND_ABORTED</allowedValue>
<allowedValue>ERROR_NOT_ENABLED_FOR_INTERNET</allowedValue>
<allowedValue>ERROR_BAD_PHONE_NUMBER</allowedValue>
<allowedValue>ERROR_USER_DISCONNECT</allowedValue>
<allowedValue>ERROR_ISP_DISCONNECT</allowedValue>
<allowedValue>ERROR_IDLE_DISCONNECT</allowedValue>
<allowedValue>ERROR_FORCED_DISCONNECT</allowedValue>
<allowedValue>ERROR_SERVER_OUT_OF_RESOURCES</allowedValue>
<allowedValue>ERROR_RESTRICTED_LOGON_HOURS</allowedValue>
<allowedValue>ERROR_ACCOUNT_DISABLED</allowedValue>
<allowedValue>ERROR_ACCOUNT_EXPIRED</allowedValue>
<allowedValue>ERROR_PASSWORD_EXPIRED</allowedValue>
<allowedValue>ERROR_AUTHENTICATION_FAILURE</allowedValue>
<allowedValue>ERROR_NO_DIALTONE</allowedValue>
<allowedValue>ERROR_NO_CARRIER</allowedValue>
<allowedValue>ERROR_NO_ANSWER</allowedValue>
<allowedValue>ERROR_LINE_BUSY</allowedValue>
<allowedValue>ERROR_UNSUPPORTED_BITSPERSECOND</allowedValue>
<allowedValue>ERROR_TOO_MANY_LINE_ERRORS</allowedValue>
<allowedValue>ERROR_IP_CONFIGURATION</allowedValue>
<allowedValue>ERROR_UNKNOWN</allowedValue>
</allowedValueList>
</stateVariable>
<stateVariable sendEvents="no">
<name>AutoDisconnectTime</name>
<dataType>ui4</dataType>
<defaultValue>0</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>IdleDisconnectTime</name>
<dataType>ui4</dataType>
<defaultValue>0</defaultValue>
</stateVariable>
<stateVariable sendEvents="yes">
<name>ExternalIPAddress</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="yes">
<name>ExternalIPv6Address</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>ValidLifetime</name>
<dataType>ui4</dataType>
<defaultValue>0</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>PreferedLifetime</name>
<dataType>ui4</dataType>
<defaultValue>0</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>IPv6Prefix</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>PrefixLength</name>
<dataType>ui1</dataType>
<defaultValue>0</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>IPv4DNSServer1</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>IPv4DNSServer2</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>IPv6DNSServer1</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>IPv6DNSServer2</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>ValidLifetime1</name>
<dataType>ui4</dataType>
<defaultValue>0</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>ValidLifetime2</name>
<dataType>ui4</dataType>
<defaultValue>0</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>RemoteHost</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>ExternalPort</name>
<dataType>ui2</dataType>
<defaultValue>0</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>InternalPort</name>
<dataType>ui2</dataType>
<defaultValue>0</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>PortMappingProtocol</name>
<dataType>string</dataType>
<allowedValueList>
<allowedValue>TCP</allowedValue>
<allowedValue>UDP</allowedValue>
</allowedValueList>
</stateVariable>
<stateVariable sendEvents="no">
<name>InternalClient</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>PortMappingDescription</name>
<dataType>string</dataType>
</stateVariable>
<stateVariable sendEvents="no">
<name>PortMappingEnabled</name>
<dataType>boolean</dataType>
<defaultValue>0</defaultValue>
</stateVariable>
<stateVariable sendEvents="no">
<name>PortMappingLeaseDuration</name>
<dataType>ui4</dataType>
<defaultValue>0</defaultValue>
</stateVariable>
<stateVariable sendEvents="yes">
<name>PortMappingNumberOfEntries</name>
<dataType>ui2</dataType>
<defaultValue>0</defaultValue>
</stateVariable>
</serviceStateTable>
</scpd> In the output above we can see
curl -s -H 'Content-Type: text/xml; charset="utf-8"' \
-H 'SOAPAction: urn:schemas-upnp-org:service:WANIPConnection:1#X_AVM_DE_GetExternalIPv6Address' \
--data-binary '<?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:X_AVM_DE_GetExternalIPv6Address xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" /></s:Body></s:Envelope>' \
http://fritz.box:49000/igdupnp/control/WANIPConn1 Response (ipv6-address redacted) <?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<u:X_AVM_DE_GetExternalIPv6AddressResponse xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1">
<NewExternalIPv6Address>2a00:X:X:X::1</NewExternalIPv6Address>
<NewPrefixLength>64</NewPrefixLength>
<NewValidLifetime>6015</NewValidLifetime>
<NewPreferedLifetime>2415</NewPreferedLifetime>
</u:X_AVM_DE_GetExternalIPv6AddressResponse>
</s:Body>
</s:Envelope> Using curl -s -H 'Content-Type: text/xml; charset="utf-8"' \
-H 'SOAPAction: urn:schemas-upnp-org:service:WANIPConnection:1#X_AVM_DE_GetIPv6Prefix' \
--data-binary '<?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:X_AVM_DE_GetIPv6Prefix xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1" /></s:Body></s:Envelope>' \
http://fritz.box:49000/igdupnp/control/WANIPConn1 Response (ipv6-address redacted) <?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<u:X_AVM_DE_GetIPv6PrefixResponse xmlns:u="urn:schemas-upnp-org:service:WANIPConnection:1">
<NewIPv6Prefix>2a00:X:X:X::</NewIPv6Prefix>
<NewPrefixLength>56</NewPrefixLength>
<NewValidLifetime>5989</NewValidLifetime>
<NewPreferedLifetime>2389</NewPreferedLifetime>
</u:X_AVM_DE_GetIPv6PrefixResponse>
</s:Body>
</s:Envelope> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the flexibility and the detailed explanation. I added back the English translation file (thats the only one you need to push) and corrected lint.
This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/gethomepage/homepage](https://github.com/gethomepage/homepage) | major | `v0.10.9` -> `v1.0.3` | --- ### Release Notes <details> <summary>gethomepage/homepage (ghcr.io/gethomepage/homepage)</summary> ### [`v1.0.3`](https://github.com/gethomepage/homepage/releases/tag/v1.0.3) [Compare Source](gethomepage/homepage@v1.0.2...v1.0.3) #### What's Changed - Fix: wrapping in bookmarks by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4945 - Fix: fix kavita API body with key by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4948 - Fix: correct units for speedtest tracker API v2 by [@​brikim](https://github.com/brikim) in gethomepage/homepage#4950 - Change: prefer IPv4 in docker image by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4954 - Enhancement: allow disabling host checking by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4967 - Fix: jellyfin handle empty episode numbers by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4970 - Documentation: add HOMEPAGE_ALLOWED_HOSTS to k8s docs by [@​xalxnder](https://github.com/xalxnder) in gethomepage/homepage#4969 #### New Contributors - [@​xalxnder](https://github.com/xalxnder) made their first contribution in gethomepage/homepage#4969 **Full Changelog**: gethomepage/homepage@v1.0.2...v1.0.3 ### [`v1.0.2`](https://github.com/gethomepage/homepage/releases/tag/v1.0.2) [Compare Source](gethomepage/homepage@v1.0.0...v1.0.2) This small bug fix fixes a couple of layout issues in v1.0.0 and reverts a change to networking that was in v1.0.1 Please also check out the [v1.0 release notes](https://github.com/gethomepage/homepage/releases/tag/v1.0.0) - Fix: fix plex total size with larger libraries by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4933 - Fix: fix larger breakpoint by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4935 **Full Changelog**: gethomepage/homepage@v1.0.0...v1.0.2 ### [`v1.0.0`](https://github.com/gethomepage/homepage/releases/tag/v1.0.0) [Compare Source](gethomepage/homepage@v0.10.9...v1.0.0) #### Homepage v1.0! 🎉 We're excited to announce the release of homepage v1.0! This release contains a bunch of new widgets, fixes and other improvements, but if you're curious why the major version bump, it's [because](https://semver.org) of the **breaking changes** included: - \[BREAKING] Enhancement: require host validation by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4744 - This change is for security reasons and the update is simple: users will need to set the `HOMEPAGE_ALLOWED_HOSTS` environment variable (how to do that varies by install type, see [the docs](https://gethomepage.dev/installation/)) - \[BREAKING] Chore: update to next v15 by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4661 - homepage no longer runs on armv7 (RIP ✌️) - \[BREAKING] Chore: upgrade to tailwind v4 by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4863 - some users may need to update their custom css - \[BREAKING] Enhancement: support for Kubernetes gateway API by [@​djeinstine](https://github.com/djeinstine) in gethomepage/homepage#4643 - k8s users may need to update their configuration, see https://gethomepage.dev/configs/kubernetes/ Thank you to our community of contributors, discord chat helpers and **our users**! We are so proud of the collaboration that goes into keeping this project delightful. #### What's Changed - Documentation: add note about clearing UniFi cache non-docker by [@​GTez](https://github.com/GTez) in gethomepage/homepage#4585 - Enhancement: handle evcc breaking change by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4630 - Development: pnpm lint on ci by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4646 - Fix: fix overlap with glances charts in multi-widgets by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4653 - \[BREAKING] Chore: update to next v15 by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4661 - Feature: Firefly widget by [@​Amjad50](https://github.com/Amjad50) in gethomepage/homepage#4683 - Fix: correct package version number by [@​Maarc](https://github.com/Maarc) in gethomepage/homepage#4691 - Enhancement: support speedtest v1.2 API by [@​shamoon](https: 6DAF //github.com/shamoon) in gethomepage/homepage#4695 - Enhancement: filter prometheus API endpoint for active only by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4701 - Fix: fix nesting with unsorted groups by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4711 - Enhancement: use datasets for truenas pools by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4716 - Chore: upgrade kubernetes/client-node by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4715 - Fix: Timezone-aware Date comparison for Calendar integration by [@​Yeraze](https://github.com/Yeraze) in gethomepage/homepage#4742 - \[BREAKING] Enhancement: support for Kubernetes gateway API by [@​djeinstine](https://github.com/djeinstine) in gethomepage/homepage#4643 - \[BREAKING] Enhancement: require host validation by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4744 - Enhancement: better tz parsing of ical recurring events by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4749 - Fix: handle possible null reference in k8s gateway api by [@​dudo](https://github.com/dudo) in gethomepage/homepage#4752 - Fixhancement: add an option to fritzbox widget to display IPv6 by [@​astappiev](https://github.com/astappiev) in gethomepage/homepage#4778 - Enhancement: improve try to prune trailing slashes by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4783 - Enhancement: support API key for Kavita by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4784 - Chore(deps): Bump jsonpath-plus from 10.2.0 to 10.3.0 by [@​dependabot](https://github.com/dependabot) in gethomepage/homepage#4794 - Chore: another big deps update by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4795 - Documentation: add auth documentation to PeaNUT by [@​Brandawg93](https://github.com/Brandawg93) in gethomepage/homepage#4803 - Enhancement: better handle recurring events poorly handled by ical library by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4807 - Chore(deps): Bump docker/setup-qemu-action from 3.4.0 to 3.5.0 by [@​dependabot](https://github.com/dependabot) in gethomepage/homepage#4836 - Fix: subtract inactive_file from glances container memory usage by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4844 - Documentation: remove auth info from romm widget by [@​gantoine](https://github.com/gantoine) in gethomepage/homepage#4846 - Chore(deps): Bump docker/setup-qemu-action from 3.5.0 to 3.6.0 by [@​dependabot](https://github.com/dependabot) in gethomepage/homepage#4848 - Chore(deps-dev): Bump eslint-config-prettier from 9.1.0 to 10.0.2 by [@​dependabot](https://github.com/dependabot) in gethomepage/homepage#4856 - Chore(deps-dev): Bump prettier from 3.5.1 to 3.5.2 by [@​dependabot](https://github.com/dependabot) in gethomepage/homepage#4859 - Enhancement: support new unifi network api and api key by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4860 - Chore(deps-dev): Bump eslint from 9.20.1 to 9.21.0 by [@​dependabot](https://github.com/dependabot) in gethomepage/homepage#4858 - Chore(deps): Bump tough-cookie from 4.1.4 to 5.1.2 by [@​dependabot](https://github.com/dependabot) in gethomepage/homepage#4857 - Feature: Add APC UPS widget by [@​nicupavel](https://github.com/nicupavel) in gethomepage/homepage#4840 - \[BREAKING] Chore: upgrade to tailwind v4 by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4863 - Fix: return all http routes of a namespace (k8s) by [@​arthur-leclerc](https://github.com/arthur-leclerc) in gethomepage/homepage#4865 - Fix: correct omada widget connectedGateways by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4872 - Enhancement: support komga API keys, breaking API changes by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4874 - Fix: use 'real_usage' for synology diskstation memory stats by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4880 - Fix: fix k8s get nodes error log by [@​jnodorp](https://github.com/jnodorp) in gethomepage/homepage#4887 - Enhancement: support automatic service discovery services with layout-only nesting by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4900 - Chore: add plex container size to requests by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4903 - Chore: migrate to pnpm only by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4907 - Feature: Hoarder service widget by [@​vhsdream](https://github.com/vhsdream) in gethomepage/homepage#4913 - Enhancement: cache release data, allow disable release checking by [@​shamoon](https://github.com/shamoon) in gethomepage/homepage#4917 - New Crowdin translations by GitHub Action by [@​github-actions](https://github.com/github-actions) in gethomepage/homepage#4599 #### New Contributors - [@​GTez](https://github.com/GTez) made their first contribution in gethomepage/homepage#4585 - [@​Amjad50](https://github.com/Amjad50) made their first contribution in gethomepage/homepage#4683 - [@​Maarc](https://github.com/Maarc) made their first contribution in gethomepage/homepage#4691 - [@​Yeraze](https://github.com/Yeraze) made their first contribution in gethomepage/homepage#4742 - [@​djeinstine](https://github.com/djeinstine) made their first contribution in gethomepage/homepage#4643 - [@​dudo](https://github.com/dudo) made their first contribution in gethomepage/homepage#4752 - [@​astappiev](https://github.com/astappiev) made their first contribution in gethomepage/homepage#4778 - [@​nicupavel](https://github.com/nicupavel) made their first contribution in gethomepage/homepage#4840 - [@​arthur-leclerc](https://github.com/arthur-leclerc) made their first contribution in gethomepage/homepage#4865 - [@​jnodorp](https://github.com/jnodorp) made their first contribution in gethomepage/homepage#4887 **Full Changelog**: gethomepage/homepage@v0.10.9...v1.0.0 </details> --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDEuMCIsInVwZGF0ZWRJblZlciI6IjM5LjIwMi4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=--> Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: Calvin Bui <3604363+calvinbui@users.noreply.github.com> Reviewed-on: https://gitea.bui.ng/calvinbui/ansible-monorepo/pulls/3525 Co-authored-by: renovate <renovate@noreply.gitea> Co-committed-by: renovate <renovate@noreply.gitea>
This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new discussion for related concerns. See our contributing guidelines for more details. |
Proposed change
This PR adds an ability to display external IPv6 address and/or IPv6-Prefix in the FritzBox widget.
Currently, the widget returns an empty IP address, because there is no IPv4 address assigned by my internet provider. Instead they provide me with an IPv6 subnet.
Unfortunately, the UPnP action is prefixed with
X_AVM_DE_
which might seem like an unstable option. However, there are already values prefixed withNewX_AVM_DE_
used in the file (as per #1213) and it seems to be even older, yet still present in my router.I added an option for both, address and prefix, however, IMHO prefix is sufficient, because
::1
has only the router itself and all the clients (NAS, Raspberry Pi, Home server, etc.) will have a different IP address with a common prefix.Tested with FRITZ!Box 7590 AX router (FRITZ!OS: 8.02), I would say it's the most popular one in Germany.
Type of change
Checklist: