diff --git a/java/google/registry/whois/DomainWhoisResponse.java b/java/google/registry/whois/DomainWhoisResponse.java index a24e9e17f..9185d44ed 100644 --- a/java/google/registry/whois/DomainWhoisResponse.java +++ b/java/google/registry/whois/DomainWhoisResponse.java @@ -24,6 +24,7 @@ import com.google.common.base.Function; import com.google.common.base.Optional; import com.google.common.base.Predicate; import com.google.common.collect.ImmutableSet; +import com.google.common.collect.Iterables; import com.googlecode.objectify.Key; import google.registry.model.contact.ContactPhoneNumber; import google.registry.model.contact.ContactResource; @@ -34,8 +35,10 @@ import google.registry.model.domain.DomainResource; import google.registry.model.domain.GracePeriod; import google.registry.model.eppcommon.StatusValue; import google.registry.model.registrar.Registrar; +import google.registry.model.registrar.RegistrarContact; import google.registry.model.translators.EnumToAttributeAdapter.EppEnum; import google.registry.util.FormattingLogger; +import java.util.Objects; import java.util.Set; import javax.annotation.Nullable; import org.joda.time.DateTime; @@ -64,39 +67,60 @@ final class DomainWhoisResponse extends WhoisResponseImpl { @Override public WhoisResponseResults getResponse(final boolean preferUnicode, String disclaimer) { Registrar registrar = getRegistrar(domain.getCurrentSponsorClientId()); - String plaintext = new DomainEmitter() - .emitField( - "Domain Name", maybeFormatHostname(domain.getFullyQualifiedDomainName(), preferUnicode)) - .emitField("Domain ID", domain.getRepoId()) - .emitField("WHOIS Server", registrar.getWhoisServer()) - .emitField("Referral URL", registrar.getReferralUrl()) - .emitField("Updated Date", getFormattedString(domain.getLastEppUpdateTime())) - .emitField("Creation Date", getFormattedString(domain.getCreationTime())) - .emitField( - "Registry Expiry Date", getFormattedString(domain.getRegistrationExpirationTime())) - .emitField("Sponsoring Registrar", registrar.getRegistrarName()) - .emitField( - "Sponsoring Registrar IANA ID", - registrar.getIanaIdentifier() == null ? null : registrar.getIanaIdentifier().toString()) - .emitStatusValues(domain.getStatusValues(), domain.getGracePeriods()) - .emitContact("Registrant", domain.getRegistrant(), preferUnicode) - .emitContact("Admin", getContactReference(Type.ADMIN), preferUnicode) - .emitContact("Tech", getContactReference(Type.TECH), preferUnicode) - .emitContact("Billing", getContactReference(Type.BILLING), preferUnicode) - .emitSet( - "Name Server", - domain.loadNameserverFullyQualifiedHostNames(), - new Function() { + Optional abuseContact = + Iterables.tryFind( + registrar.getContacts(), + new Predicate() { @Override - public String apply(String hostName) { - return maybeFormatHostname(hostName, preferUnicode); + public boolean apply(@Nullable RegistrarContact contact) { + return contact.getVisibleInDomainWhoisAsAbuse(); } - }) - .emitField("DNSSEC", isNullOrEmpty(domain.getDsData()) ? "unsigned" : "signedDelegation") - .emitLastUpdated(getTimestamp()) - .emitAwipMessage() - .emitFooter(disclaimer) - .toString(); + }); + String plaintext = + new DomainEmitter() + .emitField( + "Domain Name", + maybeFormatHostname(domain.getFullyQualifiedDomainName(), preferUnicode)) + .emitField("Registry Domain ID", domain.getRepoId()) + .emitField("Registrar WHOIS Server", registrar.getWhoisServer()) + .emitField("Registrar URL", registrar.getReferralUrl()) + .emitField("Updated Date", getFormattedString(domain.getLastEppUpdateTime())) + .emitField("Creation Date", getFormattedString(domain.getCreationTime())) + .emitField( + "Registry Expiry Date", getFormattedString(domain.getRegistrationExpirationTime())) + .emitField("Registrar", registrar.getRegistrarName()) + .emitField( + "Registrar IANA ID", + Objects.toString(registrar.getIanaIdentifier(), "")) + // Email address is a required field for registrar contacts. Therefore as long as there + // is an abuse contact, we can get an email address from it. + .emitField( + "Registrar Abuse Contact Email", + abuseContact.isPresent() ? abuseContact.get().getEmailAddress() : null) + .emitField( + "Registrar Abuse Contact Phone", + abuseContact.isPresent() ? abuseContact.get().getPhoneNumber() : null) + .emitStatusValues(domain.getStatusValues(), domain.getGracePeriods()) + .emitContact("Registrant", domain.getRegistrant(), preferUnicode) + .emitContact("Admin", getContactReference(Type.ADMIN), preferUnicode) + .emitContact("Tech", getContactReference(Type.TECH), preferUnicode) + .emitContact("Billing", getContactReference(Type.BILLING), preferUnicode) + .emitSet( + "Name Server", + domain.loadNameserverFullyQualifiedHostNames(), + new Function() { + @Override + public String apply(String hostName) { + return maybeFormatHostname(hostName, preferUnicode); + } + }) + .emitField( + "DNSSEC", isNullOrEmpty(domain.getDsData()) ? "unsigned" : "signedDelegation") + .emitWicfLink() + .emitLastUpdated(getTimestamp()) + .emitAwipMessage() + .emitFooter(disclaimer) + .toString(); return WhoisResponseResults.create(plaintext, 1); } @@ -139,7 +163,7 @@ final class DomainWhoisResponse extends WhoisResponseImpl { domain.getFullyQualifiedDomainName(), contact); return this; } - emitField(contactType, "ID", contactResource.getContactId()); + emitField("Registry", contactType, "ID", contactResource.getContactId()); PostalInfo postalInfo = chooseByUnicodePreference( preferUnicode, contactResource.getLocalizedPostalInfo(), diff --git a/java/google/registry/whois/NameserverWhoisResponse.java b/java/google/registry/whois/NameserverWhoisResponse.java index 94a04bc4e..49276400b 100644 --- a/java/google/registry/whois/NameserverWhoisResponse.java +++ b/java/google/registry/whois/NameserverWhoisResponse.java @@ -55,17 +55,20 @@ final class NameserverWhoisResponse extends WhoisResponseImpl { : host.getPersistedCurrentSponsorClientId(); Registrar registrar = getRegistrar(clientId); emitter - .emitField("Server Name", maybeFormatHostname( - host.getFullyQualifiedHostName(), preferUnicode)) - .emitSet("IP Address", host.getInetAddresses(), + .emitField( + "Server Name", maybeFormatHostname(host.getFullyQualifiedHostName(), preferUnicode)) + .emitSet( + "IP Address", + host.getInetAddresses(), new Function() { @Override public String apply(InetAddress addr) { return InetAddresses.toAddrString(addr); - }}) + } + }) .emitField("Registrar", registrar.getRegistrarName()) - .emitField("WHOIS Server", registrar.getWhoisServer()) - .emitField("Referral URL", registrar.getReferralUrl()); + .emitField("Registrar WHOIS Server", registrar.getWhoisServer()) + .emitField("Registrar URL", registrar.getReferralUrl()); if (i < hosts.size() - 1) { emitter.emitNewline(); } diff --git a/java/google/registry/whois/RegistrarWhoisResponse.java b/java/google/registry/whois/RegistrarWhoisResponse.java index 9aa27b2c8..25f953e2a 100644 --- a/java/google/registry/whois/RegistrarWhoisResponse.java +++ b/java/google/registry/whois/RegistrarWhoisResponse.java @@ -45,23 +45,24 @@ class RegistrarWhoisResponse extends WhoisResponseImpl { @Override public WhoisResponseResults getResponse(boolean preferUnicode, String disclaimer) { Set contacts = registrar.getContacts(); - String plaintext = new RegistrarEmitter() - .emitField("Registrar Name", registrar.getRegistrarName()) - .emitAddress( - null, - chooseByUnicodePreference( - preferUnicode, - registrar.getLocalizedAddress(), - registrar.getInternationalizedAddress())) - .emitPhonesAndEmail( - registrar.getPhoneNumber(), registrar.getFaxNumber(), registrar.getEmailAddress()) - .emitField("WHOIS Server", registrar.getWhoisServer()) - .emitField("Referral URL", registrar.getReferralUrl()) - .emitRegistrarContacts("Admin", contacts, AdminOrTech.ADMIN) - .emitRegistrarContacts("Technical", contacts, AdminOrTech.TECH) - .emitLastUpdated(getTimestamp()) - .emitFooter(disclaimer) - .toString(); + String plaintext = + new RegistrarEmitter() + .emitField("Registrar", registrar.getRegistrarName()) + .emitAddress( + null, + chooseByUnicodePreference( + preferUnicode, + registrar.getLocalizedAddress(), + registrar.getInternationalizedAddress())) + .emitPhonesAndEmail( + registrar.getPhoneNumber(), registrar.getFaxNumber(), registrar.getEmailAddress()) + .emitField("Registrar WHOIS Server", registrar.getWhoisServer()) + .emitField("Registrar URL", registrar.getReferralUrl()) + .emitRegistrarContacts("Admin", contacts, AdminOrTech.ADMIN) + .emitRegistrarContacts("Technical", contacts, AdminOrTech.TECH) + .emitLastUpdated(getTimestamp()) + .emitFooter(disclaimer) + .toString(); return WhoisResponseResults.create(plaintext, 1); } diff --git a/java/google/registry/whois/WhoisResponseImpl.java b/java/google/registry/whois/WhoisResponseImpl.java index b732d6ff6..7ea69011f 100644 --- a/java/google/registry/whois/WhoisResponseImpl.java +++ b/java/google/registry/whois/WhoisResponseImpl.java @@ -40,10 +40,10 @@ abstract class WhoisResponseImpl implements WhoisResponse { /** Field name for ICANN problem reporting URL appended to all WHOIS responses. */ private static final String ICANN_REPORTING_URL_FIELD = - "URL of the ICANN WHOIS Data Problem Reporting System"; + "URL of the ICANN Whois Inaccuracy Complaint Form"; /** ICANN problem reporting URL appended to all WHOIS responses. */ - private static final String ICANN_REPORTING_URL = "http://wdprs.internic.net/"; + private static final String ICANN_REPORTING_URL = "https://www.icann.org/wicf/"; private static final Registrar EMPTY_REGISTRAR = new Supplier() { @Override @@ -147,6 +147,12 @@ abstract class WhoisResponseImpl implements WhoisResponse { return thisCastToDerived(); } + /** Emit Whois Inaccuracy Complaint Form link. Only used for domain queries. */ + E emitWicfLink() { + emitField(ICANN_REPORTING_URL_FIELD, ICANN_REPORTING_URL); + return thisCastToDerived(); + } + /** Returns raw text that should be appended to the end of ALL WHOIS responses. */ E emitLastUpdated(DateTime timestamp) { // We are assuming that our WHOIS database is always completely up to date, since it's @@ -160,8 +166,7 @@ abstract class WhoisResponseImpl implements WhoisResponse { /** Returns raw text that should be appended to the end of ALL WHOIS responses. */ E emitFooter(String disclaimer) { - emitField(ICANN_REPORTING_URL_FIELD, ICANN_REPORTING_URL); - stringBuilder.append("\r\n").append(disclaimer).append("\r\n"); + stringBuilder.append(disclaimer).append("\r\n"); return thisCastToDerived(); } diff --git a/javatests/google/registry/testing/FullFieldsTestEntityHelper.java b/javatests/google/registry/testing/FullFieldsTestEntityHelper.java index 28b839545..cccbec159 100644 --- a/javatests/google/registry/testing/FullFieldsTestEntityHelper.java +++ b/javatests/google/registry/testing/FullFieldsTestEntityHelper.java @@ -99,7 +99,7 @@ public final class FullFieldsTestEntityHelper { .setVisibleInWhoisAsAdmin(false) .setVisibleInWhoisAsTech(true) .build(), - new RegistrarContact.Builder() + new RegistrarContact.Builder() .setParent(registrar) .setName("Jane Doe") .setEmailAddress("janedoe@example.com") @@ -110,7 +110,15 @@ public final class FullFieldsTestEntityHelper { // distinction to make sure we're not relying on it. Sigh. .setVisibleInWhoisAsAdmin(true) .setVisibleInWhoisAsTech(false) - .build()); + .build(), + new RegistrarContact.Builder() + .setParent(registrar) + .setName("Jake Doe") + .setEmailAddress("jakedoe@example.com") + .setPhoneNumber("+1.2125551216") + .setFaxNumber("+1.2125551216") + .setVisibleInDomainWhoisAsAbuse(true) + .build()); } public static HostResource makeHostResource(String fqhn, String ip) { diff --git a/javatests/google/registry/whois/DomainWhoisResponseTest.java b/javatests/google/registry/whois/DomainWhoisResponseTest.java index a458acba2..9326eef26 100644 --- a/javatests/google/registry/whois/DomainWhoisResponseTest.java +++ b/javatests/google/registry/whois/DomainWhoisResponseTest.java @@ -35,6 +35,7 @@ import google.registry.model.domain.secdns.DelegationSignerData; import google.registry.model.eppcommon.StatusValue; import google.registry.model.host.HostResource; import google.registry.model.registrar.Registrar; +import google.registry.model.registrar.RegistrarContact; import google.registry.testing.AppEngineRule; import google.registry.testing.FakeClock; import google.registry.whois.WhoisResponse.WhoisResponseResults; @@ -66,8 +67,21 @@ public class DomainWhoisResponseTest { @Before public void setUp() { // Update the registrar to have an IANA ID. + Registrar registrar = + persistResource( + Registrar.loadByClientId("NewRegistrar") + .asBuilder() + .setIanaIdentifier(5555555L) + .build()); + persistResource( - Registrar.loadByClientId("NewRegistrar").asBuilder().setIanaIdentifier(5555555L).build()); + new RegistrarContact.Builder() + .setParent(registrar) + .setName("Jake Doe") + .setEmailAddress("jakedoe@theregistrar.com") + .setPhoneNumber("+1.2125551216") + .setVisibleInDomainWhoisAsAbuse(true) + .build()); createTld("tld"); diff --git a/javatests/google/registry/whois/testdata/whois_domain.txt b/javatests/google/registry/whois/testdata/whois_domain.txt index ce0507a79..bad864d36 100644 --- a/javatests/google/registry/whois/testdata/whois_domain.txt +++ b/javatests/google/registry/whois/testdata/whois_domain.txt @@ -1,19 +1,21 @@ Domain Name: example.tld -Domain ID: 3-TLD -WHOIS Server: whois.nic.fakewhois.example -Referral URL: http://www.referral.example/path +Registry Domain ID: 3-TLD +Registrar WHOIS Server: whois.nic.fakewhois.example +Registrar URL: http://www.referral.example/path Updated Date: 2009-05-29T20:13:00Z Creation Date: 2000-10-08T00:45:00Z Registry Expiry Date: 2010-10-08T00:44:59Z -Sponsoring Registrar: New Registrar -Sponsoring Registrar IANA ID: 5555555 +Registrar: New Registrar +Registrar IANA ID: 5555555 +Registrar Abuse Contact Email: jakedoe@theregistrar.com +Registrar Abuse Contact Phone: +1.2125551216 Domain Status: addPeriod https://icann.org/epp#addPeriod Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited Domain Status: clientRenewProhibited https://icann.org/epp#clientRenewProhibited Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited Domain Status: transferPeriod https://icann.org/epp#transferPeriod -Registrant ID: 5372808-ERL +Registry Registrant ID: 5372808-ERL Registrant Name: EXAMPLE REGISTRANT Registrant Organization: EXAMPLE ORGANIZATION Registrant Street: 123 EXAMPLE STREET @@ -26,7 +28,7 @@ Registrant Phone Ext: 1234 Registrant Fax: +1.5555551213 Registrant Fax Ext: 4321 Registrant Email: EMAIL@EXAMPLE.tld -Admin ID: 5372809-ERL +Registry Admin ID: 5372809-ERL Admin Name: EXAMPLE REGISTRANT ADMINISTRATIVE Admin Organization: EXAMPLE REGISTRANT ORGANIZATION Admin Street: 123 EXAMPLE STREET @@ -39,7 +41,7 @@ Admin Phone Ext: 1234 Admin Fax: +1.5555551213 Admin Fax Ext: Admin Email: EMAIL@EXAMPLE.tld -Tech ID: 5372811-ERL +Registry Tech ID: 5372811-ERL Tech Name: EXAMPLE REGISTRAR TECHNICAL Tech Organization: EXAMPLE REGISTRAR LLC Tech Street: 123 EXAMPLE STREET @@ -55,10 +57,9 @@ Tech Email: EMAIL@EXAMPLE.tld Name Server: ns01.exampleregistrar.tld Name Server: ns02.exampleregistrar.tld DNSSEC: signedDelegation +URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/ >>> Last update of WHOIS database: 2009-05-29T20:15:00Z <<< For more information on Whois status codes, please visit https://icann.org/epp -URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/ - Doodle Disclaimer diff --git a/javatests/google/registry/whois/testdata/whois_multiple_nameservers.txt b/javatests/google/registry/whois/testdata/whois_multiple_nameservers.txt index ab25612e2..ff311df31 100644 --- a/javatests/google/registry/whois/testdata/whois_multiple_nameservers.txt +++ b/javatests/google/registry/whois/testdata/whois_multiple_nameservers.txt @@ -2,17 +2,15 @@ Server Name: ns1.example.tld IP Address: 192.0.2.123 IP Address: 2001:db8::1 Registrar: Example Registrar, Inc. -WHOIS Server: whois.nic.fakewhois.example -Referral URL: http://www.referral.example/path +Registrar WHOIS Server: whois.nic.fakewhois.example +Registrar URL: http://www.referral.example/path Server Name: ns2.example.tld IP Address: 192.0.2.123 IP Address: 2001:db8::1 Registrar: Example Registrar, Inc. -WHOIS Server: whois.nic.fakewhois.example -Referral URL: http://www.referral.example/path +Registrar WHOIS Server: whois.nic.fakewhois.example +Registrar URL: http://www.referral.example/path >>> Last update of WHOIS database: 2009-05-29T20:15:00Z <<< -URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/ - Doodle Disclaimer diff --git a/javatests/google/registry/whois/testdata/whois_nameserver.txt b/javatests/google/registry/whois/testdata/whois_nameserver.txt index a5b3893a4..26fed0eeb 100644 --- a/javatests/google/registry/whois/testdata/whois_nameserver.txt +++ b/javatests/google/registry/whois/testdata/whois_nameserver.txt @@ -2,10 +2,8 @@ Server Name: ns1.example.tld IP Address: 192.0.2.123 IP Address: 2001:db8::1 Registrar: Example Registrar, Inc. -WHOIS Server: whois.nic.fakewhois.example -Referral URL: http://www.referral.example/path +Registrar WHOIS Server: whois.nic.fakewhois.example +Registrar URL: http://www.referral.example/path >>> Last update of WHOIS database: 2009-05-29T20:15:00Z <<< -URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/ - Doodle Disclaimer diff --git a/javatests/google/registry/whois/testdata/whois_registrar.txt b/javatests/google/registry/whois/testdata/whois_registrar.txt index 1561be6f6..29dd6b275 100644 --- a/javatests/google/registry/whois/testdata/whois_registrar.txt +++ b/javatests/google/registry/whois/testdata/whois_registrar.txt @@ -1,4 +1,4 @@ -Registrar Name: Example Registrar, Inc. +Registrar: Example Registrar, Inc. Street: 1234 Admiralty Way City: Marina del Rey State/Province: CA @@ -7,8 +7,8 @@ Country: US Phone Number: +1.3105551212 Fax Number: +1.3105551213 Email: registrar@example.tld -WHOIS Server: whois.example-registrar.tld -Referral URL: http://www.example-registrar.tld +Registrar WHOIS Server: whois.example-registrar.tld +Registrar URL: http://www.example-registrar.tld Admin Contact: Jane Registrar Phone Number: +1.3105551214 Fax Number: +1.3105551213 @@ -23,6 +23,4 @@ Fax Number: +1.3105551216 Email: johngeek@example-registrar.tld >>> Last update of WHOIS database: 2009-05-29T20:15:00Z <<< -URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/ - Doodle Disclaimer diff --git a/javatests/google/registry/whois/testdata/whois_server_domain.txt b/javatests/google/registry/whois/testdata/whois_server_domain.txt index ae228c3ff..afa37476a 100644 --- a/javatests/google/registry/whois/testdata/whois_server_domain.txt +++ b/javatests/google/registry/whois/testdata/whois_server_domain.txt @@ -1,17 +1,19 @@ Domain Name: cat.lol -Domain ID: 9-LOL -WHOIS Server: whois.example.com -Referral URL: http://www.example.com +Registry Domain ID: 9-LOL +Registrar WHOIS Server: whois.example.com +Registrar URL: http://www.example.com Updated Date: 2009-05-29T20:13:00Z Creation Date: 2000-10-08T00:45:00Z Registry Expiry Date: 2110-10-08T00:44:59Z -Sponsoring Registrar: Yes Virginia <script> -Sponsoring Registrar IANA ID: 1 +Registrar: Yes Virginia <script> +Registrar IANA ID: 1 +Registrar Abuse Contact Email: jakedoe@example.com +Registrar Abuse Contact Phone: +1.2125551216 Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited Domain Status: clientRenewProhibited https://icann.org/epp#clientRenewProhibited Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited -Registrant ID: 5372808-ERL +Registry Registrant ID: 5372808-ERL Registrant Name: Goblin Market Registrant Organization: GOOGLE INCORPORATED <script> Registrant Street: 123 Example Boulevard <script> @@ -24,7 +26,7 @@ Registrant Phone Ext: Registrant Fax: +1.2126660420 Registrant Fax Ext: Registrant Email: lol@cat.lol -Admin ID: 5372808-IRL +Registry Admin ID: 5372808-IRL Admin Name: Santa Claus Admin Organization: GOOGLE INCORPORATED <script> Admin Street: 123 Example Boulevard <script> @@ -37,7 +39,7 @@ Admin Phone Ext: Admin Fax: +1.2126660420 Admin Fax Ext: Admin Email: BOFH@cat.lol -Tech ID: 5372808-TRL +Registry Tech ID: 5372808-TRL Tech Name: The Raven Tech Organization: GOOGLE INCORPORATED <script> Tech Street: 123 Example Boulevard <script> @@ -53,10 +55,9 @@ Tech Email: bog@cat.lol Name Server: ns1.cat.lol Name Server: ns2.cat.lol DNSSEC: signedDelegation +URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/ >>> Last update of WHOIS database: 2009-06-29T20:13:00Z <<< For more information on Whois status codes, please visit https://icann.org/epp -URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/ - Doodle Disclaimer diff --git a/javatests/google/registry/whois/testdata/whois_server_domain_not_found.txt b/javatests/google/registry/whois/testdata/whois_server_domain_not_found.txt index 7762455ac..f132c9269 100644 --- a/javatests/google/registry/whois/testdata/whois_server_domain_not_found.txt +++ b/javatests/google/registry/whois/testdata/whois_server_domain_not_found.txt @@ -1,6 +1,4 @@ Domain not found. >>> Last update of WHOIS database: 2009-06-29T20:13:00Z <<< -URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/ - Doodle Disclaimer diff --git a/javatests/google/registry/whois/testdata/whois_server_idn_punycode.txt b/javatests/google/registry/whois/testdata/whois_server_idn_punycode.txt index d11cf409e..3c6100b84 100644 --- a/javatests/google/registry/whois/testdata/whois_server_idn_punycode.txt +++ b/javatests/google/registry/whois/testdata/whois_server_idn_punycode.txt @@ -1,17 +1,19 @@ Domain Name: cat.xn--q9jyb4c -Domain ID: 9-Q9JYB4C -WHOIS Server: whois.example.com -Referral URL: http://www.example.com +Registry Domain ID: 9-Q9JYB4C +Registrar WHOIS Server: whois.example.com +Registrar URL: http://www.example.com Updated Date: 2009-05-29T20:13:00Z Creation Date: 2000-10-08T00:45:00Z Registry Expiry Date: 2110-10-08T00:44:59Z -Sponsoring Registrar: Yes Virginia <script> -Sponsoring Registrar IANA ID: 1 +Registrar: Yes Virginia <script> +Registrar IANA ID: 1 +Registrar Abuse Contact Email: jakedoe@example.com +Registrar Abuse Contact Phone: +1.2125551216 Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited Domain Status: clientRenewProhibited https://icann.org/epp#clientRenewProhibited Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited -Registrant ID: 5372808-ERL +Registry Registrant ID: 5372808-ERL Registrant Name: (◕‿◕) Registrant Organization: GOOGLE INCORPORATED <script> Registrant Street: 123 Example Boulevard <script> @@ -24,7 +26,7 @@ Registrant Phone Ext: Registrant Fax: +1.2126660420 Registrant Fax Ext: Registrant Email: lol@cat.みんな -Admin ID: 5372808-IRL +Registry Admin ID: 5372808-IRL Admin Name: Santa Claus Admin Organization: GOOGLE INCORPORATED <script> Admin Street: 123 Example Boulevard <script> @@ -37,7 +39,7 @@ Admin Phone Ext: Admin Fax: +1.2126660420 Admin Fax Ext: Admin Email: BOFH@cat.みんな -Tech ID: 5372808-TRL +Registry Tech ID: 5372808-TRL Tech Name: The Raven Tech Organization: GOOGLE INCORPORATED <script> Tech Street: 123 Example Boulevard <script> @@ -53,10 +55,9 @@ Tech Email: bog@cat.みんな Name Server: ns1.cat.xn--q9jyb4c Name Server: ns2.cat.xn--q9jyb4c DNSSEC: signedDelegation +URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/ >>> Last update of WHOIS database: 2009-06-29T20:13:00Z <<< For more information on Whois status codes, please visit https://icann.org/epp -URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/ - Doodle Disclaimer diff --git a/javatests/google/registry/whois/testdata/whois_server_idn_utf8.txt b/javatests/google/registry/whois/testdata/whois_server_idn_utf8.txt index c47609ddc..6c01819aa 100644 --- a/javatests/google/registry/whois/testdata/whois_server_idn_utf8.txt +++ b/javatests/google/registry/whois/testdata/whois_server_idn_utf8.txt @@ -1,17 +1,19 @@ Domain Name: cat.みんな -Domain ID: 9-Q9JYB4C -WHOIS Server: whois.example.com -Referral URL: http://www.example.com +Registry Domain ID: 9-Q9JYB4C +Registrar WHOIS Server: whois.example.com +Registrar URL: http://www.example.com Updated Date: 2009-05-29T20:13:00Z Creation Date: 2000-10-08T00:45:00Z Registry Expiry Date: 2110-10-08T00:44:59Z -Sponsoring Registrar: Yes Virginia <script> -Sponsoring Registrar IANA ID: 1 +Registrar: Yes Virginia <script> +Registrar IANA ID: 1 +Registrar Abuse Contact Email: jakedoe@example.com +Registrar Abuse Contact Phone: +1.2125551216 Domain Status: clientDeleteProhibited https://icann.org/epp#clientDeleteProhibited Domain Status: clientRenewProhibited https://icann.org/epp#clientRenewProhibited Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited -Registrant ID: 5372808-ERL +Registry Registrant ID: 5372808-ERL Registrant Name: (◕‿◕) Registrant Organization: GOOGLE INCORPORATED <script> Registrant Street: 123 Example Boulevard <script> @@ -24,7 +26,7 @@ Registrant Phone Ext: Registrant Fax: +1.2126660420 Registrant Fax Ext: Registrant Email: lol@cat.みんな -Admin ID: 5372808-IRL +Registry Admin ID: 5372808-IRL Admin Name: Santa Claus Admin Organization: GOOGLE INCORPORATED <script> Admin Street: 123 Example Boulevard <script> @@ -37,7 +39,7 @@ Admin Phone Ext: Admin Fax: +1.2126660420 Admin Fax Ext: Admin Email: BOFH@cat.みんな -Tech ID: 5372808-TRL +Registry Tech ID: 5372808-TRL Tech Name: The Raven Tech Organization: GOOGLE INCORPORATED <script> Tech Street: 123 Example Boulevard <script> @@ -53,10 +55,9 @@ Tech Email: bog@cat.みんな Name Server: ns1.cat.みんな Name Server: ns2.cat.みんな DNSSEC: signedDelegation +URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/ >>> Last update of WHOIS database: 2009-06-29T20:13:00Z <<< For more information on Whois status codes, please visit https://icann.org/epp -URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/ - Doodle Disclaimer diff --git a/javatests/google/registry/whois/testdata/whois_server_ip_not_found.txt b/javatests/google/registry/whois/testdata/whois_server_ip_not_found.txt index 66a41514f..45d055dd0 100644 --- a/javatests/google/registry/whois/testdata/whois_server_ip_not_found.txt +++ b/javatests/google/registry/whois/testdata/whois_server_ip_not_found.txt @@ -1,6 +1,4 @@ No nameservers found. >>> Last update of WHOIS database: 2009-06-29T20:13:00Z <<< -URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/ - Doodle Disclaimer diff --git a/javatests/google/registry/whois/testdata/whois_server_malformed_path.txt b/javatests/google/registry/whois/testdata/whois_server_malformed_path.txt index 6194cd016..5cd70319e 100644 --- a/javatests/google/registry/whois/testdata/whois_server_malformed_path.txt +++ b/javatests/google/registry/whois/testdata/whois_server_malformed_path.txt @@ -1,6 +1,4 @@ Malformed path query. >>> Last update of WHOIS database: 2009-06-29T20:13:00Z <<< -URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/ - Doodle Disclaimer diff --git a/javatests/google/registry/whois/testdata/whois_server_nameserver.txt b/javatests/google/registry/whois/testdata/whois_server_nameserver.txt index 27987406a..b05866110 100644 --- a/javatests/google/registry/whois/testdata/whois_server_nameserver.txt +++ b/javatests/google/registry/whois/testdata/whois_server_nameserver.txt @@ -1,10 +1,8 @@ Server Name: ns1.cat.lol IP Address: 1.2.3.4 Registrar: -WHOIS Server: whois.nic.fakewhois.example -Referral URL: http://www.referral.example/path +Registrar WHOIS Server: whois.nic.fakewhois.example +Registrar URL: http://www.referral.example/path >>> Last update of WHOIS database: 2009-06-29T20:13:00Z <<< -URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/ - Doodle Disclaimer diff --git a/javatests/google/registry/whois/testdata/whois_server_nameserver_not_found.txt b/javatests/google/registry/whois/testdata/whois_server_nameserver_not_found.txt index 19a13d9e2..e0ef9ac8e 100644 --- a/javatests/google/registry/whois/testdata/whois_server_nameserver_not_found.txt +++ b/javatests/google/registry/whois/testdata/whois_server_nameserver_not_found.txt @@ -1,6 +1,4 @@ Nameserver not found. >>> Last update of WHOIS database: 2009-06-29T20:13:00Z <<< -URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/ - Doodle Disclaimer diff --git a/javatests/google/registry/whois/testdata/whois_server_no_command.txt b/javatests/google/registry/whois/testdata/whois_server_no_command.txt index fd4e209e8..f808b5355 100644 --- a/javatests/google/registry/whois/testdata/whois_server_no_command.txt +++ b/javatests/google/registry/whois/testdata/whois_server_no_command.txt @@ -1,6 +1,4 @@ No WHOIS command specified. >>> Last update of WHOIS database: 2009-06-29T20:13:00Z <<< -URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/ - Doodle Disclaimer diff --git a/javatests/google/registry/whois/testdata/whois_server_registrar.txt b/javatests/google/registry/whois/testdata/whois_server_registrar.txt index bfaeec1dd..fe0b6dd88 100644 --- a/javatests/google/registry/whois/testdata/whois_server_registrar.txt +++ b/javatests/google/registry/whois/testdata/whois_server_registrar.txt @@ -1,4 +1,4 @@ -Registrar Name: Example Registrar, Inc. +Registrar: Example Registrar, Inc. Street: 123 Example Boulevard <script> City: Williamsburg <script> State/Province: NY @@ -7,8 +7,8 @@ Country: US Phone Number: +1.2125551212 Fax Number: +1.2125551213 Email: contact-us@example.com -WHOIS Server: whois.example.com -Referral URL: http://www.example.com +Registrar WHOIS Server: whois.example.com +Registrar URL: http://www.example.com Admin Contact: Jane Doe Phone Number: +1.2125551215 Fax Number: +1.2125551216 @@ -19,6 +19,4 @@ Fax Number: +1.2125551213 Email: johndoe@example.com >>> Last update of WHOIS database: 2009-06-29T20:13:00Z <<< -URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/ - Doodle Disclaimer diff --git a/javatests/google/registry/whois/testdata/whois_server_registrar_not_found.txt b/javatests/google/registry/whois/testdata/whois_server_registrar_not_found.txt index 1c51c0552..a21a15f9d 100644 --- a/javatests/google/registry/whois/testdata/whois_server_registrar_not_found.txt +++ b/javatests/google/registry/whois/testdata/whois_server_registrar_not_found.txt @@ -1,6 +1,4 @@ No registrar found. >>> Last update of WHOIS database: 2009-06-29T20:13:00Z <<< -URL of the ICANN WHOIS Data Problem Reporting System: http://wdprs.internic.net/ - Doodle Disclaimer