This commit is contained in:
Pinga 2024-07-28 11:52:38 +03:00
parent a9e5298c24
commit 2bacc8f806
4 changed files with 199 additions and 83 deletions

View file

@ -14,7 +14,7 @@
<a href="https://namingo.org" target="_blank" class="link-secondary" rel="noopener">Namingo</a> <a href="https://namingo.org" target="_blank" class="link-secondary" rel="noopener">Namingo</a>
</li> </li>
<li class="list-inline-item"> <li class="list-inline-item">
v1.0.0-RC5 v1.0.0
</li> </li>
</ul> </ul>
</div> </div>

View file

@ -42,6 +42,14 @@ function setupLogger($logFilePath, $channelName = 'app') {
} }
function mapContactToVCard($contactDetails, $role, $c) { function mapContactToVCard($contactDetails, $role, $c) {
// Determine which type of disclosure to use
$disclose_name = ($contactDetails['type'] == 'loc') ? $contactDetails['disclose_name_loc'] : $contactDetails['disclose_name_int'];
$disclose_org = ($contactDetails['type'] == 'loc') ? $contactDetails['disclose_org_loc'] : $contactDetails['disclose_org_int'];
$disclose_addr = ($contactDetails['type'] == 'loc') ? $contactDetails['disclose_addr_loc'] : $contactDetails['disclose_addr_int'];
$disclose_voice = $contactDetails['disclose_voice'];
$disclose_fax = $contactDetails['disclose_fax'];
$disclose_email = $contactDetails['disclose_email'];
return [ return [
'objectClassName' => 'entity', 'objectClassName' => 'entity',
'handle' => ['C' . $contactDetails['id'] . '-' . $c['roid']], 'handle' => ['C' . $contactDetails['id'] . '-' . $c['roid']],
@ -74,20 +82,21 @@ function mapContactToVCard($contactDetails, $role, $c) {
"vcard", "vcard",
[ [
['version', new stdClass(), 'text', '4.0'], ['version', new stdClass(), 'text', '4.0'],
["fn", new stdClass(), 'text', $contactDetails['name']], ["fn", new stdClass(), 'text', $disclose_name ? $contactDetails['name'] : "REDACTED FOR PRIVACY"],
["org", $contactDetails['org']], ["org", new stdClass(), 'text', $disclose_org ? $contactDetails['org'] : "REDACTED FOR PRIVACY"],
["adr", [ ["adr", [
"", // Post office box "", // Post office box
$contactDetails['street1'], // Extended address $disclose_addr ? $contactDetails['street1'] : "REDACTED FOR PRIVACY", // Extended address
$contactDetails['street2'], // Street address $disclose_addr ? $contactDetails['street2'] : "REDACTED FOR PRIVACY", // Street address
$contactDetails['city'], // Locality $disclose_addr ? $contactDetails['street3'] : "REDACTED FOR PRIVACY", // Additional street address
$contactDetails['sp'], // Region $disclose_addr ? $contactDetails['city'] : "REDACTED FOR PRIVACY", // Locality
$contactDetails['pc'], // Postal code $disclose_addr ? $contactDetails['sp'] : "REDACTED FOR PRIVACY", // Region
$contactDetails['cc'] // Country name $disclose_addr ? $contactDetails['pc'] : "REDACTED FOR PRIVACY", // Postal code
$disclose_addr ? strtoupper($contactDetails['cc']) : "REDACTED FOR PRIVACY" // Country name
]], ]],
["tel", $contactDetails['voice'], ["type" => "voice"]], ["tel", new stdClass(), 'uri', $disclose_voice ? "tel:" . $contactDetails['voice'] : "REDACTED FOR PRIVACY", ["type" => "voice"]],
["tel", $contactDetails['fax'], ["type" => "fax"]], ["tel", new stdClass(), 'uri', $disclose_fax ? "tel:" . $contactDetails['fax'] : "REDACTED FOR PRIVACY", ["type" => "fax"]],
["email", $contactDetails['email']], ["email", new stdClass(), 'text', $disclose_email ? $contactDetails['email'] : "REDACTED FOR PRIVACY"],
] ]
], ],
]; ];

View file

@ -1687,7 +1687,7 @@ function handleDomainSearchQuery($request, $response, $pdo, $searchPattern, $c,
$registrarAbuseDetails = $stmt3a->fetch(PDO::FETCH_ASSOC); $registrarAbuseDetails = $stmt3a->fetch(PDO::FETCH_ASSOC);
// Query 4: Get registrant details // Query 4: Get registrant details
$stmt4 = $pdo->prepare("SELECT contact.identifier,contact_postalInfo.name,contact_postalInfo.org,contact_postalInfo.street1,contact_postalInfo.street2,contact_postalInfo.street3,contact_postalInfo.city,contact_postalInfo.sp,contact_postalInfo.pc,contact_postalInfo.cc,contact.voice,contact.voice_x,contact.fax,contact.fax_x,contact.email FROM contact,contact_postalInfo WHERE contact.id=:registrant AND contact_postalInfo.contact_id=contact.id"); $stmt4 = $pdo->prepare("SELECT contact.identifier,contact_postalInfo.name,contact_postalInfo.org,contact_postalInfo.street1,contact_postalInfo.street2,contact_postalInfo.street3,contact_postalInfo.city,contact_postalInfo.sp,contact_postalInfo.pc,contact_postalInfo.cc,contact.voice,contact.voice_x,contact.fax,contact.fax_x,contact.email,contact.disclose_voice,contact.disclose_fax,contact.disclose_email,contact_postalInfo.type,contact_postalInfo.disclose_name_int,contact_postalInfo.disclose_name_loc,contact_postalInfo.disclose_org_int,contact_postalInfo.disclose_org_loc,contact_postalInfo.disclose_addr_int,contact_postalInfo.disclose_addr_loc FROM contact,contact_postalInfo WHERE contact.id=:registrant AND contact_postalInfo.contact_id=contact.id");
$stmt4->bindParam(':registrant', $domainDetails['registrant'], PDO::PARAM_INT); $stmt4->bindParam(':registrant', $domainDetails['registrant'], PDO::PARAM_INT);
$stmt4->execute(); $stmt4->execute();
$registrantDetails = $stmt4->fetch(PDO::FETCH_ASSOC); $registrantDetails = $stmt4->fetch(PDO::FETCH_ASSOC);
@ -1703,7 +1703,7 @@ function handleDomainSearchQuery($request, $response, $pdo, $searchPattern, $c,
$billingDetails = []; $billingDetails = [];
foreach ($contactMap as $map) { foreach ($contactMap as $map) {
$stmtDetails = $pdo->prepare("SELECT contact.identifier, contact_postalInfo.name, contact_postalInfo.org, contact_postalInfo.street1, contact_postalInfo.street2, contact_postalInfo.street3, contact_postalInfo.city, contact_postalInfo.sp, contact_postalInfo.pc, contact_postalInfo.cc, contact.voice, contact.voice_x, contact.fax, contact.fax_x, contact.email FROM contact, contact_postalInfo WHERE contact.id = :contact_id AND contact_postalInfo.contact_id = contact.id"); $stmtDetails = $pdo->prepare("SELECT contact.identifier, contact_postalInfo.name, contact_postalInfo.org, contact_postalInfo.street1, contact_postalInfo.street2, contact_postalInfo.street3, contact_postalInfo.city, contact_postalInfo.sp, contact_postalInfo.pc, contact_postalInfo.cc, contact.voice, contact.voice_x, contact.fax, contact.fax_x, contact.email,contact.disclose_voice,contact.disclose_fax,contact.disclose_email,contact_postalInfo.type,contact_postalInfo.disclose_name_int,contact_postalInfo.disclose_name_loc,contact_postalInfo.disclose_org_int,contact_postalInfo.disclose_org_loc,contact_postalInfo.disclose_addr_int,contact_postalInfo.disclose_addr_loc FROM contact, contact_postalInfo WHERE contact.id = :contact_id AND contact_postalInfo.contact_id = contact.id");
$stmtDetails->bindParam(':contact_id', $map['contact_id'], PDO::PARAM_INT); $stmtDetails->bindParam(':contact_id', $map['contact_id'], PDO::PARAM_INT);
$stmtDetails->execute(); $stmtDetails->execute();

View file

@ -246,7 +246,7 @@ $server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pool
} }
if (!$minimum_data) { if (!$minimum_data) {
$query5 = "SELECT contact.id,contact_postalInfo.name,contact_postalInfo.org,contact_postalInfo.street1,contact_postalInfo.street2,contact_postalInfo.street3,contact_postalInfo.city,contact_postalInfo.sp,contact_postalInfo.pc,contact_postalInfo.cc,contact.voice,contact.fax,contact.email $query5 = "SELECT contact.id,contact_postalInfo.name,contact_postalInfo.org,contact_postalInfo.street1,contact_postalInfo.street2,contact_postalInfo.street3,contact_postalInfo.city,contact_postalInfo.sp,contact_postalInfo.pc,contact_postalInfo.cc,contact.voice,contact.fax,contact.email,contact.disclose_voice,contact.disclose_fax,contact.disclose_email,contact_postalInfo.type,contact_postalInfo.disclose_name_int,contact_postalInfo.disclose_name_loc,contact_postalInfo.disclose_org_int,contact_postalInfo.disclose_org_loc,contact_postalInfo.disclose_addr_int,contact_postalInfo.disclose_addr_loc
FROM contact,contact_postalInfo WHERE contact.id=:registrant AND contact_postalInfo.contact_id=contact.id"; FROM contact,contact_postalInfo WHERE contact.id=:registrant AND contact_postalInfo.contact_id=contact.id";
$stmt5 = $pdo->prepare($query5); $stmt5 = $pdo->prepare($query5);
$stmt5->bindParam(':registrant', $f['registrant'], PDO::PARAM_INT); $stmt5->bindParam(':registrant', $f['registrant'], PDO::PARAM_INT);
@ -268,22 +268,49 @@ $server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pool
."\nRegistrant Fax: REDACTED FOR PRIVACY" ."\nRegistrant Fax: REDACTED FOR PRIVACY"
."\nRegistrant Email: Kindly refer to the RDDS server associated with the identified registrar in this output to obtain contact details for the Registrant, Admin, or Tech associated with the queried domain name."; ."\nRegistrant Email: Kindly refer to the RDDS server associated with the identified registrar in this output to obtain contact details for the Registrant, Admin, or Tech associated with the queried domain name.";
} else { } else {
$res .= "\nRegistry Registrant ID: C".$f2['id']."-".$c['roid'] $res .= "\nRegistry Registrant ID: C".$f2['id']."-".$c['roid'];
."\nRegistrant Name: ".$f2['name']
."\nRegistrant Organization: ".$f2['org'] // Determine which type of disclosure to use
."\nRegistrant Street: ".$f2['street1'] $disclose_name = ($f2['type'] == 'loc') ? $f2['disclose_name_loc'] : $f2['disclose_name_int'];
$disclose_org = ($f2['type'] == 'loc') ? $f2['disclose_org_loc'] : $f2['disclose_org_int'];
$disclose_addr = ($f2['type'] == 'loc') ? $f2['disclose_addr_loc'] : $f2['disclose_addr_int'];
// Registrant Name
$res .= ($disclose_name ? "\nRegistrant Name: ".$f2['name'] : "\nRegistrant Name: REDACTED FOR PRIVACY");
// Registrant Organization
$res .= ($disclose_org ? "\nRegistrant Organization: ".$f2['org'] : "\nRegistrant Organization: REDACTED FOR PRIVACY");
// Registrant Address
if ($disclose_addr) {
$res .= "\nRegistrant Street: ".$f2['street1']
."\nRegistrant Street: ".$f2['street2'] ."\nRegistrant Street: ".$f2['street2']
."\nRegistrant Street: ".$f2['street3'] ."\nRegistrant Street: ".$f2['street3']
."\nRegistrant City: ".$f2['city'] ."\nRegistrant City: ".$f2['city']
."\nRegistrant State/Province: ".$f2['sp'] ."\nRegistrant State/Province: ".$f2['sp']
."\nRegistrant Postal Code: ".$f2['pc'] ."\nRegistrant Postal Code: ".$f2['pc']
."\nRegistrant Country: ".strtoupper($f2['cc']) ."\nRegistrant Country: ".strtoupper($f2['cc']);
."\nRegistrant Phone: ".$f2['voice'] } else {
."\nRegistrant Fax: ".$f2['fax'] $res .= "\nRegistrant Street: REDACTED FOR PRIVACY"
."\nRegistrant Email: ".$f2['email']; ."\nRegistrant Street: REDACTED FOR PRIVACY"
."\nRegistrant Street: REDACTED FOR PRIVACY"
."\nRegistrant City: REDACTED FOR PRIVACY"
."\nRegistrant State/Province: REDACTED FOR PRIVACY"
."\nRegistrant Postal Code: REDACTED FOR PRIVACY"
."\nRegistrant Country: REDACTED FOR PRIVACY";
} }
$query6 = "SELECT contact.id,contact_postalInfo.name,contact_postalInfo.org,contact_postalInfo.street1,contact_postalInfo.street2,contact_postalInfo.street3,contact_postalInfo.city,contact_postalInfo.sp,contact_postalInfo.pc,contact_postalInfo.cc,contact.voice,contact.fax,contact.email // Registrant Phone
$res .= ($f2['disclose_voice'] ? "\nRegistrant Phone: ".$f2['voice'] : "\nRegistrant Phone: REDACTED FOR PRIVACY");
// Registrant Fax
$res .= ($f2['disclose_fax'] ? "\nRegistrant Fax: ".$f2['fax'] : "\nRegistrant Fax: REDACTED FOR PRIVACY");
// Registrant Email
$res .= ($f2['disclose_email'] ? "\nRegistrant Email: ".$f2['email'] : "\nRegistrant Email: Kindly refer to the RDDS server associated with the identified registrar in this output to obtain contact details for the Registrant, Admin, or Tech associated with the queried domain name.");
}
$query6 = "SELECT contact.id,contact_postalInfo.name,contact_postalInfo.org,contact_postalInfo.street1,contact_postalInfo.street2,contact_postalInfo.street3,contact_postalInfo.city,contact_postalInfo.sp,contact_postalInfo.pc,contact_postalInfo.cc,contact.voice,contact.fax,contact.email,contact.disclose_voice,contact.disclose_fax,contact.disclose_email,contact_postalInfo.type,contact_postalInfo.disclose_name_int,contact_postalInfo.disclose_name_loc,contact_postalInfo.disclose_org_int,contact_postalInfo.disclose_org_loc,contact_postalInfo.disclose_addr_int,contact_postalInfo.disclose_addr_loc
FROM domain_contact_map,contact,contact_postalInfo WHERE domain_contact_map.domain_id=:domain_id AND domain_contact_map.type='admin' AND domain_contact_map.contact_id=contact.id AND domain_contact_map.contact_id=contact_postalInfo.contact_id"; FROM domain_contact_map,contact,contact_postalInfo WHERE domain_contact_map.domain_id=:domain_id AND domain_contact_map.type='admin' AND domain_contact_map.contact_id=contact.id AND domain_contact_map.contact_id=contact_postalInfo.contact_id";
$stmt6 = $pdo->prepare($query6); $stmt6 = $pdo->prepare($query6);
$stmt6->bindParam(':domain_id', $f['id'], PDO::PARAM_INT); $stmt6->bindParam(':domain_id', $f['id'], PDO::PARAM_INT);
@ -310,21 +337,48 @@ $server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pool
} else { } else {
$res .= "\nRegistry Admin ID:"; $res .= "\nRegistry Admin ID:";
} }
$res .= "\nAdmin Name: ".$f2['name']
."\nAdmin Organization: ".$f2['org'] // Determine which type of disclosure to use
."\nAdmin Street: ".$f2['street1'] $disclose_name = ($f2['type'] == 'loc') ? $f2['disclose_name_loc'] : $f2['disclose_name_int'];
$disclose_org = ($f2['type'] == 'loc') ? $f2['disclose_org_loc'] : $f2['disclose_org_int'];
$disclose_addr = ($f2['type'] == 'loc') ? $f2['disclose_addr_loc'] : $f2['disclose_addr_int'];
// Admin Name
$res .= ($disclose_name ? "\nAdmin Name: ".$f2['name'] : "\nAdmin Name: REDACTED FOR PRIVACY");
// Admin Organization
$res .= ($disclose_org ? "\nAdmin Organization: ".$f2['org'] : "\nAdmin Organization: REDACTED FOR PRIVACY");
// Admin Address
if ($disclose_addr) {
$res .= "\nAdmin Street: ".$f2['street1']
."\nAdmin Street: ".$f2['street2'] ."\nAdmin Street: ".$f2['street2']
."\nAdmin Street: ".$f2['street3'] ."\nAdmin Street: ".$f2['street3']
."\nAdmin City: ".$f2['city'] ."\nAdmin City: ".$f2['city']
."\nAdmin State/Province: ".$f2['sp'] ."\nAdmin State/Province: ".$f2['sp']
."\nAdmin Postal Code: ".$f2['pc'] ."\nAdmin Postal Code: ".$f2['pc']
."\nAdmin Country: ".strtoupper($f2['cc']) ."\nAdmin Country: ".strtoupper($f2['cc']);
."\nAdmin Phone: ".$f2['voice'] } else {
."\nAdmin Fax: ".$f2['fax'] $res .= "\nAdmin Street: REDACTED FOR PRIVACY"
."\nAdmin Email: ".$f2['email']; ."\nAdmin Street: REDACTED FOR PRIVACY"
."\nAdmin Street: REDACTED FOR PRIVACY"
."\nAdmin City: REDACTED FOR PRIVACY"
."\nAdmin State/Province: REDACTED FOR PRIVACY"
."\nAdmin Postal Code: REDACTED FOR PRIVACY"
."\nAdmin Country: REDACTED FOR PRIVACY";
} }
$query7 = "SELECT contact.id,contact_postalInfo.name,contact_postalInfo.org,contact_postalInfo.street1,contact_postalInfo.street2,contact_postalInfo.street3,contact_postalInfo.city,contact_postalInfo.sp,contact_postalInfo.pc,contact_postalInfo.cc,contact.voice,contact.fax,contact.email // Admin Phone
$res .= ($f2['disclose_voice'] ? "\nAdmin Phone: ".$f2['voice'] : "\nAdmin Phone: REDACTED FOR PRIVACY");
// Admin Fax
$res .= ($f2['disclose_fax'] ? "\nAdmin Fax: ".$f2['fax'] : "\nAdmin Fax: REDACTED FOR PRIVACY");
// Admin Email
$res .= ($f2['disclose_email'] ? "\nAdmin Email: ".$f2['email'] : "\nAdmin Email: Kindly refer to the RDDS server associated with the identified registrar in this output to obtain contact details for the Registrant, Admin, or Tech associated with the queried domain name.");
}
$query7 = "SELECT contact.id,contact_postalInfo.name,contact_postalInfo.org,contact_postalInfo.street1,contact_postalInfo.street2,contact_postalInfo.street3,contact_postalInfo.city,contact_postalInfo.sp,contact_postalInfo.pc,contact_postalInfo.cc,contact.voice,contact.fax,contact.email,contact.disclose_voice,contact.disclose_fax,contact.disclose_email,contact_postalInfo.type,contact_postalInfo.disclose_name_int,contact_postalInfo.disclose_name_loc,contact_postalInfo.disclose_org_int,contact_postalInfo.disclose_org_loc,contact_postalInfo.disclose_addr_int,contact_postalInfo.disclose_addr_loc
FROM domain_contact_map,contact,contact_postalInfo WHERE domain_contact_map.domain_id=:domain_id AND domain_contact_map.type='billing' AND domain_contact_map.contact_id=contact.id AND domain_contact_map.contact_id=contact_postalInfo.contact_id"; FROM domain_contact_map,contact,contact_postalInfo WHERE domain_contact_map.domain_id=:domain_id AND domain_contact_map.type='billing' AND domain_contact_map.contact_id=contact.id AND domain_contact_map.contact_id=contact_postalInfo.contact_id";
$stmt7 = $pdo->prepare($query7); $stmt7 = $pdo->prepare($query7);
$stmt7->bindParam(':domain_id', $f['id'], PDO::PARAM_INT); $stmt7->bindParam(':domain_id', $f['id'], PDO::PARAM_INT);
@ -351,21 +405,48 @@ $server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pool
} else { } else {
$res .= "\nRegistry Billing ID:"; $res .= "\nRegistry Billing ID:";
} }
$res .= "\nBilling Name: ".$f2['name']
."\nBilling Organization: ".$f2['org'] // Determine which type of disclosure to use
."\nBilling Street: ".$f2['street1'] $disclose_name = ($f2['type'] == 'loc') ? $f2['disclose_name_loc'] : $f2['disclose_name_int'];
$disclose_org = ($f2['type'] == 'loc') ? $f2['disclose_org_loc'] : $f2['disclose_org_int'];
$disclose_addr = ($f2['type'] == 'loc') ? $f2['disclose_addr_loc'] : $f2['disclose_addr_int'];
// Billing Name
$res .= ($disclose_name ? "\nBilling Name: ".$f2['name'] : "\nBilling Name: REDACTED FOR PRIVACY");
// Billing Organization
$res .= ($disclose_org ? "\nBilling Organization: ".$f2['org'] : "\nBilling Organization: REDACTED FOR PRIVACY");
// Billing Address
if ($disclose_addr) {
$res .= "\nBilling Street: ".$f2['street1']
."\nBilling Street: ".$f2['street2'] ."\nBilling Street: ".$f2['street2']
."\nBilling Street: ".$f2['street3'] ."\nBilling Street: ".$f2['street3']
."\nBilling City: ".$f2['city'] ."\nBilling City: ".$f2['city']
."\nBilling State/Province: ".$f2['sp'] ."\nBilling State/Province: ".$f2['sp']
."\nBilling Postal Code: ".$f2['pc'] ."\nBilling Postal Code: ".$f2['pc']
."\nBilling Country: ".strtoupper($f2['cc']) ."\nBilling Country: ".strtoupper($f2['cc']);
."\nBilling Phone: ".$f2['voice'] } else {
."\nBilling Fax: ".$f2['fax'] $res .= "\nBilling Street: REDACTED FOR PRIVACY"
."\nBilling Email: ".$f2['email']; ."\nBilling Street: REDACTED FOR PRIVACY"
."\nBilling Street: REDACTED FOR PRIVACY"
."\nBilling City: REDACTED FOR PRIVACY"
."\nBilling State/Province: REDACTED FOR PRIVACY"
."\nBilling Postal Code: REDACTED FOR PRIVACY"
."\nBilling Country: REDACTED FOR PRIVACY";
} }
$query8 = "SELECT contact.id,contact_postalInfo.name,contact_postalInfo.org,contact_postalInfo.street1,contact_postalInfo.street2,contact_postalInfo.street3,contact_postalInfo.city,contact_postalInfo.sp,contact_postalInfo.pc,contact_postalInfo.cc,contact.voice,contact.fax,contact.email // Billing Phone
$res .= ($f2['disclose_voice'] ? "\nBilling Phone: ".$f2['voice'] : "\nBilling Phone: REDACTED FOR PRIVACY");
// Billing Fax
$res .= ($f2['disclose_fax'] ? "\nBilling Fax: ".$f2['fax'] : "\nBilling Fax: REDACTED FOR PRIVACY");
// Billing Email
$res .= ($f2['disclose_email'] ? "\nBilling Email: ".$f2['email'] : "\nBilling Email: Kindly refer to the RDDS server associated with the identified registrar in this output to obtain contact details for the Registrant, Admin, or Tech associated with the queried domain name.");
}
$query8 = "SELECT contact.id,contact_postalInfo.name,contact_postalInfo.org,contact_postalInfo.street1,contact_postalInfo.street2,contact_postalInfo.street3,contact_postalInfo.city,contact_postalInfo.sp,contact_postalInfo.pc,contact_postalInfo.cc,contact.voice,contact.fax,contact.email,contact.disclose_voice,contact.disclose_fax,contact.disclose_email,contact_postalInfo.type,contact_postalInfo.disclose_name_int,contact_postalInfo.disclose_name_loc,contact_postalInfo.disclose_org_int,contact_postalInfo.disclose_org_loc,contact_postalInfo.disclose_addr_int,contact_postalInfo.disclose_addr_loc
FROM domain_contact_map,contact,contact_postalInfo WHERE domain_contact_map.domain_id=:domain_id AND domain_contact_map.type='tech' AND domain_contact_map.contact_id=contact.id AND domain_contact_map.contact_id=contact_postalInfo.contact_id"; FROM domain_contact_map,contact,contact_postalInfo WHERE domain_contact_map.domain_id=:domain_id AND domain_contact_map.type='tech' AND domain_contact_map.contact_id=contact.id AND domain_contact_map.contact_id=contact_postalInfo.contact_id";
$stmt8 = $pdo->prepare($query8); $stmt8 = $pdo->prepare($query8);
$stmt8->bindParam(':domain_id', $f['id'], PDO::PARAM_INT); $stmt8->bindParam(':domain_id', $f['id'], PDO::PARAM_INT);
@ -392,19 +473,45 @@ $server->on('receive', function ($server, $fd, $reactorId, $data) use ($c, $pool
} else { } else {
$res .= "\nRegistry Tech ID:"; $res .= "\nRegistry Tech ID:";
} }
$res .= "\nTech Name: ".$f2['name']
."\nTech Organization: ".$f2['org'] // Determine which type of disclosure to use
."\nTech Street: ".$f2['street1'] $disclose_name = ($f2['type'] == 'loc') ? $f2['disclose_name_loc'] : $f2['disclose_name_int'];
$disclose_org = ($f2['type'] == 'loc') ? $f2['disclose_org_loc'] : $f2['disclose_org_int'];
$disclose_addr = ($f2['type'] == 'loc') ? $f2['disclose_addr_loc'] : $f2['disclose_addr_int'];
// Tech Name
$res .= ($disclose_name ? "\nTech Name: ".$f2['name'] : "\nTech Name: REDACTED FOR PRIVACY");
// Tech Organization
$res .= ($disclose_org ? "\nTech Organization: ".$f2['org'] : "\nTech Organization: REDACTED FOR PRIVACY");
// Tech Address
if ($disclose_addr) {
$res .= "\nTech Street: ".$f2['street1']
."\nTech Street: ".$f2['street2'] ."\nTech Street: ".$f2['street2']
."\nTech Street: ".$f2['street3'] ."\nTech Street: ".$f2['street3']
."\nTech City: ".$f2['city'] ."\nTech City: ".$f2['city']
."\nTech State/Province: ".$f2['sp'] ."\nTech State/Province: ".$f2['sp']
."\nTech Postal Code: ".$f2['pc'] ."\nTech Postal Code: ".$f2['pc']
."\nTech Country: ".strtoupper($f2['cc']) ."\nTech Country: ".strtoupper($f2['cc']);
."\nTech Phone: ".$f2['voice'] } else {
."\nTech Fax: ".$f2['fax'] $res .= "\nTech Street: REDACTED FOR PRIVACY"
."\nTech Email: ".$f2['email']; ."\nTech Street: REDACTED FOR PRIVACY"
."\nTech Street: REDACTED FOR PRIVACY"
."\nTech City: REDACTED FOR PRIVACY"
."\nTech State/Province: REDACTED FOR PRIVACY"
."\nTech Postal Code: REDACTED FOR PRIVACY"
."\nTech Country: REDACTED FOR PRIVACY";
} }
// Tech Phone
$res .= ($f2['disclose_voice'] ? "\nTech Phone: ".$f2['voice'] : "\nTech Phone: REDACTED FOR PRIVACY");
// Tech Fax
$res .= ($f2['disclose_fax'] ? "\nTech Fax: ".$f2['fax'] : "\nTech Fax: REDACTED FOR PRIVACY");
// Tech Email
$res .= ($f2['disclose_email'] ? "\nTech Email: ".$f2['email'] : "\nTech Email: Kindly refer to the RDDS server associated with the identified registrar in this output to obtain contact details for the Registrant, Admin, or Tech associated with the queried domain name.");
} }
$query9 = "SELECT name FROM domain_host_map,host WHERE domain_host_map.domain_id = :domain_id AND domain_host_map.host_id = host.id"; $query9 = "SELECT name FROM domain_host_map,host WHERE domain_host_map.domain_id = :domain_id AND domain_host_map.host_id = host.id";