61 lines
1.9 KiB
Objective-C
61 lines
1.9 KiB
Objective-C
//
|
|
// NSString+URLEscapingAdditions.m
|
|
// MPOAuthConnection
|
|
//
|
|
// Created by Karl Adam on 08.12.07.
|
|
// Copyright 2008 matrixPointer. All rights reserved.
|
|
//
|
|
|
|
#import "NSString+URLEscapingAdditions.h"
|
|
|
|
|
|
@implementation NSString (MPURLEscapingAdditions)
|
|
|
|
- (BOOL)isIPAddress {
|
|
BOOL isIPAddress = NO;
|
|
NSArray *components = [self componentsSeparatedByString:@"."];
|
|
NSCharacterSet *invalidCharacters = [[NSCharacterSet characterSetWithCharactersInString:@"1234567890"] invertedSet];
|
|
|
|
if ([components count] == 4) {
|
|
NSString *part1 = [components objectAtIndex:0];
|
|
NSString *part2 = [components objectAtIndex:1];
|
|
NSString *part3 = [components objectAtIndex:2];
|
|
NSString *part4 = [components objectAtIndex:3];
|
|
|
|
if ([part1 rangeOfCharacterFromSet:invalidCharacters].location == NSNotFound &&
|
|
[part2 rangeOfCharacterFromSet:invalidCharacters].location == NSNotFound &&
|
|
[part3 rangeOfCharacterFromSet:invalidCharacters].location == NSNotFound &&
|
|
[part4 rangeOfCharacterFromSet:invalidCharacters].location == NSNotFound ) {
|
|
|
|
if ([part1 intValue] < 255 &&
|
|
[part2 intValue] < 255 &&
|
|
[part3 intValue] < 255 &&
|
|
[part4 intValue] < 255) {
|
|
isIPAddress = YES;
|
|
}
|
|
}
|
|
}
|
|
|
|
return isIPAddress;
|
|
}
|
|
|
|
- (NSString *)stringByAddingURIPercentEscapesUsingEncoding:(NSStringEncoding)inEncoding {
|
|
NSString *escapedString = (NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
|
|
(CFStringRef)self,
|
|
NULL,
|
|
(CFStringRef)@":/?=,!$&'()*+;[]@#",
|
|
CFStringConvertNSStringEncodingToEncoding(inEncoding));
|
|
|
|
return [escapedString autorelease];
|
|
}
|
|
|
|
@end
|
|
|
|
@implementation NSURL (MPURLEscapingAdditions)
|
|
|
|
- (NSString *)stringByAddingURIPercentEscapesUsingEncoding:(NSStringEncoding)inEncoding {
|
|
return [[self absoluteString] stringByAddingURIPercentEscapesUsingEncoding:inEncoding];
|
|
}
|
|
|
|
@end
|