<?xml version="1.0" encoding="UTF-8"?>
<response>
  <family>
  <id>ur</id>
  <name>UR</name>
  <host>urapp.kr</host>
  <url>https://urapp.kr</url>
  <tagline>Small network tools</tagline>
  <summary>UR is a family of tiny public tools for IP and network work. Each app lives on its own host. Add a new entry to the catalog when another app ships.</summary>
  </family>
  <apps>
  <app>
  <id>urip</id>
  <name>URIP</name>
  <host>urip.kr</host>
  <url>https://urip.kr</url>
  <tagline>Your public IP</tagline>
  <category>Networking</category>
  <icon>/urip.svg</icon>
  <summary>Echoes the client address Cloudflare sees, plus optional geo and request metadata. Root returns plain text. Open /json, /xml, /yaml, /csv, /html, /headers, or /trace for the same lookup in another shape.</summary>
    <examples>
      <example url="https://urip.kr">https://urip.kr</example>
      <example url="https://urip.kr/json">https://urip.kr/json</example>
      <example url="https://urip.kr/html">https://urip.kr/html</example>
    </examples>
  </app>
  <app>
  <id>urnet</id>
  <name>URNET</name>
  <host>urnet.kr</host>
  <url>https://urnet.kr</url>
  <tagline>IPv4 subnet calculator</tagline>
  <category>Networking</category>
  <icon>/urnet.svg</icon>
  <summary>Calculates CIDR fields for /{ip}/{prefix}: mask, network, broadcast, host range, first-octet address class, and shop-floor size (Class A=/8, Class B=/16, Class C=/24). Same format paths as URIP under each lookup.</summary>
    <examples>
      <example url="https://urnet.kr/192.168.0.1/24">https://urnet.kr/192.168.0.1/24</example>
      <example url="https://urnet.kr/192.168.0.10/8/json">https://urnet.kr/192.168.0.10/8/json</example>
      <example url="https://urnet.kr/10.0.0.1/16">https://urnet.kr/10.0.0.1/16</example>
    </examples>
  </app>
  </apps>
</response>