Usage: warrantyinfo.sh
If you do not specify a serial number as an argument, the script will use the serial number from the machine that it is run on.
UPDATE: Made it compatible with iPhones. I do not own an iPad and therefor no iPad serial number, so I haven't tested it with iPads.
#!/bin/bash # Check warranty # Usage: $0 serialnumber OR just $0 INFOF="/tmp/warranty.info" INFOF2="/tmp/warranty_lines.info" if [ -z "$1" ]; then echo "No serial number specified, assuming it's the local machine's serial" SN=$(system_profiler SPHardwareDataType | grep "Serial Number" | awk -F': ' '{print $2}') else SN="$1" fi if [ -z "$SN" ]; then printf "No serial number specified and no serial number automatically found\n" printf "Exiting\n\n" exit 1 fi # Get raw info printf "Getting warranty info from Apple" curl --silent https://selfsolve.apple.com/warrantyChecker.do?sn=$SN -o "$INFOF" # Checking if it's an iPhone IPHONESTAT=$(cat "$INFOF" | awk -F'IS_IPHONE' '{print $2}' | awk -F'"' '{print $3}') if [ "$IPHONESTAT" = "Y" ]; then # This is an iPhone, check iPhone-specific data PRODUCT=$(cat "$INFOF" | awk -F'PROD_DESCR' '{print $2}' | awk -F'"' '{print $3}') PARTDESCR=$(cat "$INFOF" | awk -F'PART_DESCR' '{print $2}' | awk -F'"' '{print $3}') ICCID=$(cat "$INFOF" | awk -F'ICCID' '{print $2}' | awk -F'"' '{print $3}') REGISTERED=$(cat "$INFOF" | awk -F'IS_REGISTERED' '{print $2}' | awk -F'"' '{print $3}') ACTIVATED=$(cat "$INFOF" | awk -F'ACTIVATION_STATUS' '{print $2}' | awk -F'"' '{print $3}') IMEI=$(cat "$INFOF" | awk -F'AP_IMEI_NUM' '{print $2}' | awk -F'"' '{print $3}') WARRANTY=$(cat "$INFOF" | awk -F'HW_COVERAGE_DESC' '{print $2}' | awk -F'"' '{print $3}') CARRIER=$(cat "$INFOF" | awk -F'CARRIER' '{print $2}' | awk -F'"' '{print $3}') PURCHDATE=$(cat "$INFOF" | awk -F'PURCHASE_DATE' '{print $2}' | awk -F'"' '{print $3}') # Make it nicer if [ "$REGISTERED" = "Y" ]; then REGISTERED=Yes else REGISTERED=No fi if [ "$ACTIVATED" = "Y" ]; then ACTIVATED=Yes else ACTIVATED=No fi # Display data clear printf "\033[1mWarranty Information\033[m\n\n" printf "Product:\t\033[1m$PRODUCT\033[m\n" printf "Description:\t\033[1m$PARTDESCR\033[m\n" printf "Serial Number:\t\033[1m$SN\033[m\n" printf "ICCID:\t\t\033[1m$ICCID\033[m\n" printf "IMEI:\t\t\033[1m$IMEI\033[m\n" printf "Purchase Date:\t\033[1m$PURCHDATE\033[m\n" printf "Warranty:\t\033[1m$WARRANTY\033[m\n" printf "Registered:\t\033[1m$REGISTERED\033[m\n" printf "Activated:\t\033[1m$ACTIVATED\033[m\n" printf "Carrier:\t\033[1m$CARRIER\033[m\n\n\n" else # This is a Mac, check Mac data # Get product description first as it may contain comma (,) PRODUCT=$(cat "$INFOF" | awk -F'PROD_DESCR' '{print $2}' | awk -F'"' '{print $3}') DAYSREM=$(cat "$INFOF" | awk -F'DAYS_REM_IN_COV' '{print $2}' | awk -F'"' '{print $3}') PURCHDATE=$(cat "$INFOF" | awk -F'PURCHASE_DATE' '{print $2}' | awk -F'"' '{print $3}') ENDDATE=$(cat "$INFOF" | awk -F'COV_END_DATE' '{print $2}' | awk -F'"' '{print $3}') # Display data clear printf "\033[1mWarranty Information\033[m\n\n" printf "Product:\t\033[1m$PRODUCT\033[m\n" printf "Serial Number:\t\033[1m$SN\033[m\n" printf "Purchase Date:\t\033[1m$PURCHDATE\033[m\n" printf "End Date:\t\033[1m$ENDDATE\033[m\n" printf "Days remaining:\t\033[1m$DAYSREM\033[m\n" printf "\n\n" fi exit 0
1 comment:
Works fine with iPad serials too.
Post a Comment