ifconfig.me에서 외부 IP를 가져 오는 기능이 있습니다. 그러나 그것은 자신이 제대로 파워 쉘에 의해 처리되는 방식으로 인코딩되지, "http://ifconfig.me/ip"문자열이 powershell에서 잘못 인코딩 됨
function Get-ExternalIP
{
$url = "http://ifconfig.me/ip"
$webClient = new-object System.Net.WebClient
$ip = $webClient.downloadstring($url)
return $ip
}
이 성공적으로 IP 주소 모습을 반환에서 일반 문자열 모양을 반환합니다.
$ip = Get-ExternalIP
$ip -as [ipaddress]
실패합니다.
이 문자열로 수행하려고 시도하는 모든 함수가 실패합니다. 텍스트 파일에서 다른 IP를 문자열로 가져오고 두 개를 비교하는 것은 '동일'하더라도 실패합니다.
텍스트 파일에 쓰기를 시도 할 때 추가 줄 바꿈이 표시되고 16 진수 heditor가 표시되지 않는 추가 데이터로드를 표시하는 경우 악화됩니다.
위쪽은 '불량 데이터'이며, 아래는 내가 예상 한 모습의 예입니다.
나는 이것이 추출한 텍스트 객체의 인코딩으로 인한 것이라고 생각하지만, 인코딩이 무엇인지 알 수 있고 그것을 다시 인코딩 할 수있는 방법을 알고 싶습니다. 함께 일할 수 있습니다. 내가 할 수있는 간단한 캐스트 (?)가있을 것이라고 확신합니까? 그러나 나는 그것을 어떻게 찾아 낼지 모른다.
은 "여분의"데이터 [바이트 순서 마크]이다 (http://en.wikipedia.org/wiki/Byte_order_mark). – vonPryz
'$ ip.trim() -as [ipaddress]'는'TRUE'를 리턴합니다! 이 값에는 마지막에 여분의 '빈'칸이 있습니다. –
@vonPryz 문자열의 시작 부분에있는 두 문자는 BOM이지만 데이터의 ret를 보면 여분의 문자가 있습니다. – Patrick