Website Technology Profiler
Discover What Any Website Is Built With – Instantly
Identify the technologies behind any website with one simple click you can quickly see what frameworks, platforms, plugins, analytics tools, and hosting providers a site uses.
Our site works as a powerful website technology profiler, scanning the page and generating a full breakdown of all detectable technologies. From CMS platforms and eCommerce systems to JavaScript libraries and server software helping you understand exactly how a website is built.
Perfect for developers, marketers, SEO professionals, and anyone curious about the tech stack behind their favorite websites.
Executive Summary for joshsinclair.com
SEO & Content Analysis
Basic Information
SEO Meta Tags
content-type: text/html; charset=UTF-8
Page Content
Josh Sinclair | Technologist
# THIS SCRIPT REQUIRES THE NUTANIX POWERSHELL MODULES AND POWERSHELL VERSION 4.0# Interface of Windows VMs needs to be named "Ethernet"# VMs must be powered on# 1. Get list of VMs and IPs from a VMware Folder# 2. Check that all VMs are in the Protection Domain# 3. Change the IPs of the VMs and shut them down# 4. Change the static DNS entries### DECLARE CONSTANTS ####Source Domain Controller$dnsServer="dc01.test.com"#Establish PSSession to target Domain Controller$s=new-PSSession-Computer$dnsServerImport-PSSession-Session$s-Module DNSServer# Need to load PowerCLI and Nutanix modulesAdd-PSSnapin NutanixCmdletsPSSnapin#Make sure that any previous Nutanix or vCenter sessions are disconnectedDisconnect-NTNXCluster *Disconnect-VIServer *-Confirm:$false#Name of target VMware folder$folder="DRTest"#Name of the Protection Domain$protectionDomain="Test"#Destination Network - 10.XXX.XXX.0$destinationNet="10.0.1.0"$destinationNet=$destinationNet.Split(".")#Destination DNS 01$destinationDNS01="10.0.1.11"$destinationDNS02="10.0.1.12"#Nutanix Cluster IP$nutanixClusterIP="10.0.0.51"#Source vCenter$vCenter="vc01.test.com"### BEGIN SCRIPT ####Clear Powershell Consoleclear#Connect to vCenterConnect-VIServer$vcenter#Connect to the Nutanix ClusterConnect-NutanixCluster-Server$nutanixClusterIP-UserName admin-Password admin-AcceptInvalidSSLCerts|Out-Null#Get the names of the VMs in the target Folder#Initialize an array to hold the names of the VMs in the folder$folderVMs=@()#Add the names of the VMs in the folder to the arrayForeach($vm in(get-vm-Location$folder)){$folderVMs=$folderVMs+$vm.Name}#Initialize an array to hold the names of the VMs in the protection domain$protectedVMs=@()#Add the names of the VMs in the protection domain to the arrayForeach($vm in(Get-NTNXVM|Where{$_.protectionDomainName-eq$protectionDomain}|Select vmName)){$protectedVMs=$protectedVMs+$vm.vmName}#compare the arrays of VMs to check if there are any missing VMs and add them to $missingVMs$missingVMs=Compare-Object$folderVMs$protectedVMs#Initialize an array to contain VMs that are in the folder but not in the protection domain$pdMissing=@()#Initialize an array to contain VMs that are in the protection domain but not in the folder$folderMissing=@()#Initialize an array to contain the DNS Updates$dnsupdates=@()#Iterate through $missingVMs and notify the user which VMs are missingif($missingVMs.Count-ne0){foreach($vm in$missingVMs) {if($vm.SideIndicator-eq"<=") {$pdMissing=$pdMissing+$vm}if($vm.SideIndicator-eq"=>") {$folderMissing=$folderMissing+$vm}}echo"These VMs are in the $folder VMware Folder but not in the $protectionDomain protection domain."foreach($pdvm in$pdMissing) {echo$pdvm.InputObject}echo`necho"These VMs are in the $protectionDomain protection domain but not in the $folder VMware Folder."foreach($foldervm in$folderMissing) {echo$foldervm.InputObject}echo`n#If there are missing VMs then end the scriptbreak}#Pop up a dialog box to get the linux username and password and test that the linux credential actually works with a linux VM to prevent an epic fail#if the credential fails then prompt for the password again$crTest="echo test"do{$linuxCredential=Get-Credential-Username"root"-Message"Type the ROOT username and password for Linux machines"}Until(Invoke-VMScript-VM(get-vm-Location$folder|where{$_.Guest.OSFullName.Contains("Linux")}|Sort)[0]-ScriptText$crTest-GuestCredential$linuxCredential)#Get the IP Address of the VM, convert it into an array, and replace the source network with the destination networkForeach($vm in(get-vm-Location$folder|Sort)) {$oldip=$vm.Guest.IPAddress[0]$octets=$vm.Guest.IPAddress[0].Split(".")#Create the new IP address from the destination network$octets[0]=$destinationNet[0]$octets[1]=$destinationNet[1]$octets[2]=$destinationNet[2]$newip=[string]::Join(".",$octets)#Create the DNS Update$dnsupdates+=@{"OldIP"=$oldip;"NewIP"=$newip}#Change the last octet to .1 for the gateway IP$octets[3]="1"$vmgateway=[string]::Join(".",$octets)#Check if the Guest OS is Windows and update the IP Addressif($vm.Guest.OSFullName.Contains("Windows")){$chNet="netsh interface ip delete dnsservers Ethernet all; netsh interface ip add dnsservers Ethernet $destinationDNS01; netsh interface ip add dnsservers Ethernet $destinationDNS02 index=2; netsh interface ip set address name=Ethernet static $newip 255.255.255.0 $vmgateway"Invoke-VMScript-VM$vm-ScriptText$chNet}#Check if the Guest OS is Linux and update the IP Addressif($vm.Guest.OSFullName.Contains("Linux")){$chNet="/root/failover"Invoke-VMScript-VM$vm-ScriptText$chNet-GuestCredential$linuxCredential}}#Shutdown the VMsForeach($vm in(get-vm-Location$folder)) {Shutdown-VMGuest-VM$vm-Confirm:$false}#Update the static DNS A record for each VMforeach($dnsupdate in$dnsupdates) {$oldIP=[string]$dnsupdate.OldIP$newIP=[string]$dnsupdate.NewIPecho"Changing DNS Record $oldIP to $newIP"$oldDNS=Get-DnsServerResourceRecord-zonename test.com-RRTypeA|where{$_.RecordData.IPv4Address-eq$oldip}$newDNS=$oldDNS.Clone()$newDNS.RecordData.IPv4Address=[ipaddress]$newipSet-DnsServerResourceRecord-ZoneName"test.com"-OldInputObject$oldDNS-NewInputObject$newDNS}Remove-PSSession$sDisconnect-NTNXCluster *Disconnect-VIServer *-Confirm:$false#Wait for the VMs to shut downSleep60;Network & Infrastructure
DNS & Hosting
SSL/TLS Certificate
Technology Stack
Content Management Systems
JavaScript Frameworks
Build Tools
Server Technologies
Services & Integrations
Analytics & Tracking
E-commerce Platforms
CDN & Media Providers
Media Providers
Web Fonts
Dynamic Analysis & Security
Dynamic JavaScript Analysis
Server Headers
Apache
Resource Analysis
External Resource Hosts
fonts.googleapis.com
gmpg.org
joshsinclair.com
s.w.org
UI Frameworks & Libraries
Analysis Complete
Analyzed joshsinclair.com with 3 technologies detected across 8 categories
Analysis completed in 1379 ms • 2026-03-23 11:03:50 UTC