2014-09-07 2 views
0

제 동료가 네트워크에 명시해야하는 IP 주소의 호스트 이름을 표시하는 스크립트를 작성했습니다. 문제는 스크립트가 CentOS에서 문제없이 작동한다는 것을 확인했습니다. 나는이 지점에서 무제한의 CentOS 상자에 접근 할 수 없기 때문에 여기서 샌드 박스와 함께 커맨드 라인 우분투를 사용할 수 있습니다. 어떤 이유로 누군가가 올바른 방향으로 나를 가리킬 수 있다면 같은 스크립트가 작동하지 않을 것이고 궁금해 할 것입니다.우분투에서 bash 호스트 스크립트를 실행할 때 문제가 발생했습니다.

#!/bin/sh 

ipranges=" 
173.225.176 

127.0.0 
" 

for r in $ipranges; do 
    for i in `seq 1 255`; do 
     host $r.$i|grep -vi 'not found' 
    done 
done 

나는 또한뿐만 아니라/빈/bash는에 오두막 라인과 행운을 변경 시도 : 여기

는 스크립트입니다. 나는 현재지고있어 오류는 다음과 같은 사용하여 우분투입니다 :

출력 :

$ sh script.sh 

socket.cL1915: internal_send: 0.0.0.1#53: invalid argument 

사람이 그래서 우리는 IP의이 ARIN에 보고서를 제출하기 위해 사용되는 것을 표기하기 수 알고해야하는 경우

, 이 지식이 필요한 경우에 대비하여 누구든지 내게 제공 할 수있는 도움에 감사드립니다!

+0

어떤 버전의 우분투를 사용하고 계십니까? – lxg

+0

오류를 재현 할 수 없습니다 : Unbuntu 11.04, Unbuntu 14.04 및 RHEL 6. – Cyrus

+0

예, 사용하고 있습니다 : 우분투 3.13.0-35- 일반, 배포 relase = 14.04. –

답변

0

문제는 ipranges 변수의 빈 줄입니다. host $r.$i 표현식이 host .1으로 확장되는 것 같습니다. 호스트 구현에 의해 0.0.0.1으로 해석됩니다. (안타깝게도 상자에 이것을 재현 할 수는 없지만 그럴듯한 설명 일 것입니다.)

빈 줄을 생략하거나 더 나은 방법으로 모든 IP 주소를 하나 또는 그 이상으로 작성하십시오. 적절한 bash array (그러나 그때 당신은 분명히 shebang으로 /bin/bash을 사용합니다.)

+0

흠, 당신이 아는 곳에서 내가이 스크립트를 등록하고 실행할 수있는 위치에 대해 알고있는 자유로운 쉘 또는 jailshell 액세스? 그렇지 않다면, 나는 아마도 당신의 제안이나 다른 상자를 시도 할 것입니다. –

+0

아니, 죄송합니다. 제가 제안한 스크립트를 다시 써 보았습니까? – lxg

0

작은 따옴표가 효과가 있지만 문제가되는 것은 바로 진드기가 필요한 것입니다. 여기이 문서의 조언을 따랐다 :

https://answers.yahoo.com/question/index?qid=20130805103907AAQ5CGh

기본적으로, 다시 진드기에 대한 문 내에서 작은 따옴표를 교환하고 매력처럼 작동합니다. 도움을 주려고 한 모든 사람들에게 감사드립니다!

관련 문제