2014-02-27 2 views
0

를 돌려 다른 URL 반환 뭔가에 존재하는 경우 어떻게 IP 주소가 매트랩을 사용하여 URL에 존재 여부를 내가 확인합니까? IP 주소를 확인하는 데 사용할 수있는 기능이 있습니까?IP 주소가 뭔가

data =['http://95.154.196.187/broser/6716804bc5a91f707a34479012dad47c/', 
     'http://95.154.196.187/broser/', 
     'http://paypal.com.cgi-bin-websc5.b4d80a13c0a2116480.ee0r-cmd-login-submit-dispatch-'] 

def IP_exist(data): 
for b in data: 
    containsdigit = any(a.isdigit() for a in b) 
    if containsdigit: 
     print("1") 
    else: 
     print("0") 
+0

아니요, URL이 IP 주소로 구성되어 있는지 확인하고 싶습니다. 데이터 1과 데이터 2는 IP를 가져 왔고 1은 데이터 1을 반환하고 데이터 3은 0을 반환합니다. – user3340270

답변

3

regexp, 당신은 'tokens'를 사용할 수 있습니다 또는 일반 일치로 봐 비하인드 이것은 미리 봐. 여기에 보면 미리 접근 방식 뒤에 /의 :

>> str = {'http://95.154.196.187/broser/6716804bc5a91f707a34479012dad47c/', 
     'http://95.154.196.187/broser/', 
     'http://paypal.com.cgi-bin-websc5.b4d80a13c0a2116480.ee0r-cmd-login-submit-dispatch-'}; 
>> IPs = regexp(str,'(?<=//)(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})(?=/)','match') 
IPs = 
    {1x1 cell} 
    {1x1 cell} 
    {} 
>> IPs{1} 
ans = 
'95.154.196.187' 
>> hasIP = ~cellfun(@isempty,IPs).' 
hasIP = 
    1  1  0 

'tokens' 접근 방식은 간단한 패턴을 가지고 있지만,이 세포 중첩 된대로 출력이 더 복잡하다 :

>> IPs = regexp(str,'//(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/','tokens') 
IPs = 
    {1x1 cell} 
    {1x1 cell} 
    {} 
>> IPs{1} 
ans = 
    {1x1 cell} 
>> IPs{1}{1} 
ans = 
    '95.154.196.187' 

같은 hasIP 계산이 작동을하지만, .

+0

명령 창 대신 Matlab 편집기에서 작성하는 방법 ? 나는 많은 양의 데이터를 가지고 있기 때문에 ..... thx – user3340270

+0

'str'과 같은 적절한 셀 배열에 데이터를 어떻게 포맷합니까? – chappjc

+0

작업 공간/변수 편집기에서 내 데이터를 볼 수 있지만, "IP 주소"는 이러한 기능 중 하나 일 뿐이지 만 검사 할 기능이 많기 때문에 Matlab 편집기에서 코드를 작성해야합니다. 다음 단계로 진행하려면이 모든 것을 별도의 파일에 저장해야합니다. – user3340270