Make WHOIS domain query return conform to ICANN CL&D policy

ICANN's policy can be found here:
https://www.icann.org/resources/pages/rdds-labeling-policy-2017-02-01-en

-------------
Created by MOE: https://github.com/google/moe
MOE_MIGRATED_REVID=155375811
This commit is contained in:
jianglai 2017-05-08 07:17:23 -07:00 committed by Ben McIlwain
parent 2846f9c6b9
commit 8892656722
21 changed files with 175 additions and 138 deletions

View file

@ -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<String, String>() {
Optional<RegistrarContact> abuseContact =
Iterables.tryFind(
registrar.getContacts(),
new Predicate<RegistrarContact>() {
@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<String, String>() {
@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(),

View file

@ -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<InetAddress, String>() {
@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();
}

View file

@ -45,23 +45,24 @@ class RegistrarWhoisResponse extends WhoisResponseImpl {
@Override
public WhoisResponseResults getResponse(boolean preferUnicode, String disclaimer) {
Set<RegistrarContact> 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);
}

View file

@ -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<Registrar>() {
@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();
}

View file

@ -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) {

View file

@ -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");

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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 &lt;script&gt;
Sponsoring Registrar IANA ID: 1
Registrar: Yes Virginia &lt;script&gt;
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 &lt;script&gt;
Registrant Street: 123 Example Boulevard &lt;script&gt;
@ -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 &lt;script&gt;
Admin Street: 123 Example Boulevard &lt;script&gt;
@ -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 &lt;script&gt;
Tech Street: 123 Example Boulevard &lt;script&gt;
@ -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

View file

@ -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

View file

@ -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 &lt;script&gt;
Sponsoring Registrar IANA ID: 1
Registrar: Yes Virginia &lt;script&gt;
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 &lt;script&gt;
Registrant Street: 123 Example Boulevard &lt;script&gt;
@ -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 &lt;script&gt;
Admin Street: 123 Example Boulevard &lt;script&gt;
@ -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 &lt;script&gt;
Tech Street: 123 Example Boulevard &lt;script&gt;
@ -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

View file

@ -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 &lt;script&gt;
Sponsoring Registrar IANA ID: 1
Registrar: Yes Virginia &lt;script&gt;
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 &lt;script&gt;
Registrant Street: 123 Example Boulevard &lt;script&gt;
@ -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 &lt;script&gt;
Admin Street: 123 Example Boulevard &lt;script&gt;
@ -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 &lt;script&gt;
Tech Street: 123 Example Boulevard &lt;script&gt;
@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -1,4 +1,4 @@
Registrar Name: Example Registrar, Inc.
Registrar: Example Registrar, Inc.
Street: 123 Example Boulevard &lt;script&gt;
City: Williamsburg &lt;script&gt;
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

View file

@ -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