62 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			62 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
def _is_valid_domain(domain: str) -> bool:
 | 
						|
    """
 | 
						|
    Basic domain validation.
 | 
						|
 | 
						|
    Args:
 | 
						|
        domain: Domain string to validate
 | 
						|
 | 
						|
    Returns:
 | 
						|
        True if domain appears valid
 | 
						|
    """
 | 
						|
    if not domain or len(domain) > 253:
 | 
						|
        return False
 | 
						|
 | 
						|
    # Check for valid characters and structure
 | 
						|
    parts = domain.split('.')
 | 
						|
    if len(parts) < 2:
 | 
						|
        return False
 | 
						|
 | 
						|
    for part in parts:
 | 
						|
        if not part or len(part) > 63:
 | 
						|
            return False
 | 
						|
        if not part.replace('-', '').replace('_', '').isalnum():
 | 
						|
            return False
 | 
						|
 | 
						|
    return True
 | 
						|
 | 
						|
def _is_valid_ip(ip: str) -> bool:
 | 
						|
    """
 | 
						|
    Basic IP address validation.
 | 
						|
 | 
						|
    Args:
 | 
						|
        ip: IP address string to validate
 | 
						|
 | 
						|
    Returns:
 | 
						|
        True if IP appears valid
 | 
						|
    """
 | 
						|
    try:
 | 
						|
        parts = ip.split('.')
 | 
						|
        if len(parts) != 4:
 | 
						|
            return False
 | 
						|
 | 
						|
        for part in parts:
 | 
						|
            num = int(part)
 | 
						|
            if not 0 <= num <= 255:
 | 
						|
                return False
 | 
						|
 | 
						|
        return True
 | 
						|
 | 
						|
    except (ValueError, AttributeError):
 | 
						|
        return False
 | 
						|
 | 
						|
def is_valid_target(target: str) -> bool:
 | 
						|
    """
 | 
						|
    Checks if the target is a valid domain or IP address.
 | 
						|
 | 
						|
    Args:
 | 
						|
        target: The target string to validate.
 | 
						|
 | 
						|
    Returns:
 | 
						|
        True if the target is a valid domain or IP, False otherwise.
 | 
						|
    """
 | 
						|
    return _is_valid_domain(target) or _is_valid_ip(target) |