모듈 토크:IP 주소

Module talk

아이피

단일 인수와 문자열을 사용하고 다음을 반환합니다.

  • 유효한 IPV6 주소의 경우는, 「6」
  • 유효한 IPV6 주소인 경우 "4"
  • 빈 문자열(둘 다 아닌 경우)을 클릭합니다.

이를 {{PAGENAME}}에 적용하면 템플릿에서 사용되는 것처럼 템플릿이 익명 사용자 페이지/사용자 토크 페이지에 배치되어 있는지 여부를 판별할 수 있습니다.AfC 토크:

{{#if: {{Is}IPAddress {{PAGENAME}}: 익명 IP 사용자 또는 사용자 토크 페이지에 있습니다.다른 페이지에 있습니다.}

여백은 사용할 수 없습니다(예: 끝에 여백이 있는 "127.0.0.1"은 유효한 IP 주소가 아닙니다).

IsIpV6

지정된 인수가 유효한 IPv6 주소일 경우 1을 반환하고 그렇지 않을 경우 0을 반환합니다.

ISIpV4

지정된 인수가 유효한 IPv4 주소일 경우 1을 반환하고 그렇지 않을 경우 0을 반환합니다.

그룹 내 3자리 이상

'000000000005.10.10'이 올바른 IPv4 주소입니까? --DixonD (talk) 07:53, 2013년 3월 8일 (UTC)응답[응답]

좋은 질문입니다.'3자리 이상'이 아니라 '0'을 선두로 하는 것이 중요합니다.12.02.4.4는 합법입니까?12.00.4.4는 어때? 규칙이 뭐야?
현재 코드에서는 이러한 코드와 1.000000100.2.2를 사용할 수 있습니다.즉, 임의의 숫자 앞에0 을 붙일 수 있습니다.거절하기가 비교적 쉽습니다.도트 10진 표기법 #동그라미에서 0 앞에 오는 것은 좋은 생각이 아니며 혼란을 초래할 수 있습니다.이것은 때때로 "8진수"를 의미하는 것으로 해석될 수 있습니다.코드를 disallow로 변경해야 합니까?테스트에 추가할까요?peace - יוodod aododakipod ) ( talk ) 09:06, 2013년 3월 8일 (UTC)응답[응답]
네, 허락하지 않는 게 좋을 것 같아요.regexp를 "^(%d+)%(%d+)%(%d+)%(%d+)"에서 "^(%d{1,3}%(%d{1,3})"%(%d{1,3})$"와 같이 변경합니다. --DixonD(talk) 12:11, 2013년 3월 8일 (C)
엄밀히 말하면, 당신이 제안하는 것은 실행할 수 없습니다.왜냐하면 lua의 문자열 비교는 실제 regex가 아니기 때문입니다.구체적으로는 큐리에서는 수량화를 지원하지 않습니다.또한 000이나 020 등도 허용되지만, 이 또한 허용되지 않아야 합니다.다만, 말씀드린 대로, 해결은 어렵지 않습니다.------------------------------------------------------------------------------------------------------------------------------------------------------------------------
0을 선두로 하는 것을 허용하지 않는 등 내가 옳다고 생각하는 방법으로 작업을 수행했습니다(즉, 0은 괜찮지만 02 또는 00은 그렇지 않습니다).이 때문에, 문자열 「00.00.00.00」에 대해서, 1개의 테스트가 실패하는 원인이 됩니다.이 테스트에 불합격할지를 알 수 없습니다(위의 답변은 불합격할 것으로 생각됩니다).이 경우 테스트를 수정해야 합니다.또는 합격해야 합니다.이 경우 코드를 수정해야 합니다.시드는 쉽다. 다음 중 어느 것이 합법적인지를 설명하는 권위 있는 출처를 누군가 지목할 수 있는가?
00.00.00.00 000000012.13.14.15 012.13.14.15 01.02.03.04
신뢰할 수 있는 출처를 찾을 수 없다면, 어쨌든 당신의 의견은 감사할 것입니다.또한 무엇이 옳은지에 관계없이 우리가 본받아야 할 과거의 행동이 있는가? 감사합니다.peace - יוodod aododakipod ) ( talk )2013년 3월 8일 (UTC)응답
Ubuntu에서 ping은 0으로 시작하는 숫자를 8진수로 취급합니다.012.13.14.15는 합법적이지만(실제로는 10.13.14.15), 08.8.8은 유효하지 않습니다(8은 8진수가 아닙니다). --Harriv (talk) 19:14, 2013년 3월 16일 (UTC) 응답

2018년 7월 13일 이동 요청

다음은 요청한 이동에 대한 비공개 토론입니다.수정하지 마십시오.그 후의 코멘트는, 토크 페이지의 새로운 섹션에서 실시할 필요가 있습니다.최종 결정에 이의를 제기하고자 하는 편집자는 이동 검토를 고려해야 합니다.이 섹션은 더 이상 편집하지 마십시오.

이동 요청의 결과, 아래 설명에 따라 현재 제안된 제목으로 모듈을 이동하기로 합의하지 못했습니다.데키마스! 2018년 7월 21일 02:26 (UTC) 답장 [응답]


모듈: IPAddress모듈:[Validate IP] : 모듈명을 명확하게 합니다.현재 모듈명은 모듈과 유의하게 구별되지 않습니다.IP {{3x p}}ery (토크) 2018년 7월 13일 (UTC)응답[응답]

  • 지원: 모듈 이름은 템플릿 이름보다 더 정확하게 설명해야 합니다.Wikisource에서 반복적으로 입력할 때 모듈 이름을 지나치게 간결하게 입력할 필요가 없기 때문입니다. - SMC Candelish ¢ 😼 2018년 7월 13일 22:33 (UTC)응답[응답]
  • 반대: "IP"라는 용어는 즉시 명확한 의미가 없으며 "Validate IP"는 어떤 의미도 가질 수 있습니다. 컨텍스트와 정확성을 위해 "Address"가 필요합니다."Validate IP Address"는 바보같습니다.이것은 아무 혜택도 없는 제안서입니다.MfD에도 불구하고 이 모듈에 1기능만의 타이틀을 부여함으로써 향후 이 모듈의 동작을 지시할 필요는 없습니다.Johnuniq (토크) 00:00, 2018년 7월 14일 (UTC)응답[응답]
    +1. 또한 모든 인터위키를 기록합니다.아직 중앙 모듈이 없기 때문에 모든 인터위키는 직접 복사입니다.이 모듈을 복사하도록 선택한 다른 모든 위키백과에서 사용되는 이름을 유지하는 것이 좋습니다.peace - יודod aaoda kipod ) ( talk )3:22, 2018년 7월 16일 (UTC)응답[응답]

위의 논의는 요청된 이동의 아카이브로 유지됩니다.수정하지 마십시오.후속 코멘트는 이 토크 페이지의 새로운 섹션 또는 이동 리뷰에서 해야 합니다.이 섹션은 더 이상 편집하지 마십시오.

템플릿(IP 사용자 기타)에서 모듈을 사용하게 되었습니다.IP 주소

{{IP-user other}}: 템플릿 코드만 사용하여 IPv4 및 IPv6을 검출했지만 모듈:IPAddress는 검출이 용이합니다.그래서 만들어봤어요{{ }IP-user other}} 이제 모듈을 사용합니다.IPAddress. 이 좋은 모듈 감사합니다.(나중에 시스템메시지에 사용할 예정입니다)

--David Göthberg (토크)2019년 12월 27일 (UTC)응답[응답]

isIpOrRange

@KevinL: 제 강연(permalink)에 따라 모듈에 사용할 수 있는 기능을 추가했습니다.IPAddress/샌드박스만족하면 모듈로 이동할 수 있습니다.IP 주소거기가 제일 좋은 곳인 것 같아요.이 모듈은 사용자의 목적에 적합하도록 완전히 보호되어 있습니다.

입력이 IPv4 또는 IPv6 주소인 경우 함수는 'ip'를 반환하고 CIDR IPv4 또는 IPv6 범위인 경우 'range'를 반환합니다.그렇지 않으면 빈 문자열을 반환합니다.그러면 #if를 사용한 테스트가 쉬워집니다.다음에 설명하는 예를 제시하겠습니다.

  • {{#invoke:IPAddress/sandbox isIpOrRange 1.2.3.4}}→ IP
  • {{#invoke:IPAddress/sandbox isIpOrRange 1.2.3.4 }}→ IP
  • {{#invoke:IPAddress/sandbox isIpOrRange 1.2.3.0/24}}→ 범위
  • {{#invoke:IPAddress/sandbox isIpOrRange 2606:6000:610A:9000:9DF6:CC8D:592B:1AE}}→ IP
  • {{#invoke:IPAddress/sandbox isIpOrRange 2606:6000:610A:9000::/64}}→ 범위
  • {{#invoke:IPAddress/sandbox isIpOrRange}}
  • {{#invoke:IPAddress/sandbox isIpOrRange }}
  • {{#invoke:IPAddress/sandbox isIpOrRange Jimbo}}

두 번째 예에서는 선행/추적 공백이 무시됨을 보여 줍니다.다른 호칭이나 변경이 필요하시면 알려주세요.이 페이지를 보고 계신 분들께 알려드리기 위해 글을 올립니다.Johnuniq (대화) 2020년 12월 14일 09:20 (UTC)응답[응답]

@Johnuniq:완벽합니다.빠른 시간 내주셔서 감사합니다.이것을 메인 모듈로 옮겨 주세요.정말 감사해요.베스트, KevinL (akaL235·t·c) 2020년 12월 14일 (UTC)응답 [응답]
@KevinL:잠깐만, 먼저 시험해 봐야지!어디서든 사용할 수 있나요?Johnuniq (토크) 09:27, 2020년 12월 14일 (UTC)응답[응답]
위에 써주신 예시를 통해 충분히 효과가 있을 것으로 확신합니다.모듈의 코드를 알고 있습니다.IP는 충분히 테스트되어 있기 때문에, 이 기능도 확실히 동작할 수 있을 것입니다.다른 함수의 성공을 테스트하기 위한 lua 구문은 잘 몰랐지만, 당신은 그럴 거라고 확신합니다.베타 클러스터에서 수행한 테스트에 따르면 전달하려는 매개 변수는 함수가 허용하는 정확한 형식입니다.어쨌든, 나는 이것이 나에게 효과가 있다고 확신해!베스트, KevinL (akaL235·t·c) 2020년 12월 14일 (UTC)응답 [응답]
@KevinL: 네, 로켓 과학이 아니기 때문에 메인 모듈을 업데이트했습니다.Johnuniq (대화) 09:55, 2020년 12월 14일 (UTC)응답[응답]

모듈 재사용:아이피

모듈을 재사용할 것을 제안합니다. 모듈의 모든 기능에 대한 IP입니다.변경 내용은 다음 모듈에서 확인할 수 있습니다.IPAddress/샌드박스이는 다음과 같은 실질적인 효과를 가져옵니다.

  • 모든 기능에 대한 적용 범위를 지정합니다.이것이 제가 의도한 사용 사례입니다.테스트 케이스에는 이에 대한 내용이 없기 때문에 현재 사용자가 isIp/isIpV4/isIpV6에 의존하여 범위에 대해 false를 반환하고 있는지 알 수 없습니다.
  • 선행 및 후행 공간을 수용하는 등 일반적으로 더 느슨한 구문 분석입니다.

이 변화에 대해 어떻게 생각하세요?다른 템플릿이 깨지는 경우 문자열이 IPv4 또는 IPv6 IP 또는 범위인지 확인하기 위해 새로운 함수를 추가할 것을 제안합니다.마리오곰 (대화) 18:28, 2021년 3월 18일 (UTC)응답[응답]

아직 자세히 살펴보진 않았지만 아마도 바람직할 겁니다.그것은 훨씬 더 많은 오버헤드가 될 것이지만 아마 하찮을 것이다.일부에서는 모듈이 어떻게 기능하는 방법에 대해 검토했습니다.IPAddress를 사용하는 것이 좋습니다(사용량이 많지 않으면 오버헤드는 문제가 되지 않습니다).단, 리다이렉트 할 예정이라면 최악의 글로벌 기능을 수정하고 그것을 사용하는 모듈을 수정해 주십시오.2021년인데 글로벌 기능이 안 좋대요!예를 들어 모듈을 사용하는 모든 모듈:이러한 기능을 사용하려고 해도 글로벌은 크래시하지 않습니다.Johnuniq (대화) 00:58, 2021년 3월 19일 (UTC)응답[응답]
신뢰성이 어느 정도인지는 모르겠지만 "여기에 있는 링크"에 따라 모듈은 다음과 같습니다.IPAddress는 어떤 모듈에서도 사용되지 않습니다(이상한 이유로 IPAddress 자체 제외).약 210개의 템플릿에서 사용되고 있습니다만, 그 템플릿의 doc 페이지에 {{Userspace linking templates}}이 사용되고 있기 때문에 툴에 의한 보고가 잘못되어 있는 것이 아닐까 생각합니다.더 있을 수 있지만 이 모듈을 사용할 수 있는 템플릿은 {{Is}뿐입니다.IPAddress} 및 {{Xsign}}입니다.이 모듈은 MediaWiki에서 사용됩니다.새로운 기사 텍스트.@L235: 이 모듈을 어디서 사용했습니까?Johnuniq (대화) 09:09, 2021년 3월 19일 (UTC)응답[응답]
현재 Mediawiki에서 사용하고 있습니다.차단된 텍스트이지만 이 텍스트가 모듈에 병합되면 매우 만족할 것입니다.IP! KevinL (akaL235·t·c) 2021년 3월 19일 18:18 (UTC)응답 [응답]
아, 모듈:IPAddress는 MediaWiki에서 사용됩니다.새로운 기사 텍스트 및 미디어 위키:차단 텍스트모듈을 Marge하는 것이 아니라 Module을 사용하는 것이 제안입니다.모듈에서 제공하는 기능을 구현하기 위한 IP:를 들어 1.2.3.4/24가 "IP 주소"가 되도록 문서화된 동작을 변경할 때 IPAddress가 사용됩니다.사용하고 있는 isIpOrRange 함수에는 영향을 주지 않습니다.Johnuniq (대화) 00:01, 2021년 3월 20일 (UTC)응답[응답]
그럼 좋겠네!이 템플릿을 편집할 권한이 없습니다. 샌드박스에서 변경 사항을 적용할 수 있는 사람이 있습니까?이전에 대처해야 할 사항이 있습니까?마리오곰 (대화) 2021년 3월 27일 (UTC)응답[응답]
가장 뛰어난 것은 위에서 언급한 글로벌을 고친다는 것입니다.그건 나중에 볼게요.Johnuniq (대화) 00:50, 2021년 3월 28일 (UTC)응답[응답]
나는 지구본을 수정하기 위해 샌드박스를 편집했다.다만, TODO 노트를 추가했습니다.이러한 변경(상기대로의 범위 수용)은, 이 모듈의 사용 방법에 적합하지 않을 가능성이 있기 때문에, 많은 검토가 필요합니다.1.2.3.4/5 를 유효한 IPv4 주소로 간주할 필요가 있는지는, 바람직하지 않습니다.또한, 테스트 케이스는 생각할 필요가 있습니다.Johnuniq (토크) 08:38, 2021년 3월 28일 (UTC)응답[응답]
사용 예로는 IPv4 주소/CIDR과 IPv6 주소/CIDR을 구별합니다({Proxyip}, {{Proxyip4}, {{Proxyip6}).다음으로 isIpOrRange 등의 메서드를 사용하여 범위 여부를 확인합니다.사용자 이름에 사용하는 템플릿이나 모듈에는 차이가 없습니다.파손 위험이 너무 높다고 생각되면 isIpV4AddressOrRange 및 isIpV6AddressOrRange와 같은 새로운 기능을 사용합니다.IPv4 대 IPv6 및 주소 대 범위라는 2개의 직교 측면을 유지하는 것이 더 간단할 수 있습니다.마리오곰 (대화) 2021년 3월 31일 14:30 (UTC)응답[응답]
(노출: 이 모듈을 수년 전에 작성했습니다.wp:vpt 또는 wp:lua의 요청에 따라 다음 경로 중 하나에서도 이 모듈의 기능을 "로컬"로 만들 수 있습니까?약간 난관인 것 같은데...peace - (일명 kipod) (대화) 2021년 3월 31일 (UTC)응답
모듈을 이미 청소했고 (샌드박스에) 글로벌이 없습니다.일부 검색 결과 지구본은 사용되지 않았을 가능성이 높지만 샌드박스가 실제로 가동되면 알게 될 것입니다.저는 오프위키에 사로잡혀서 아직 충분히 생각하지 못했지만 새로운 기능이 가장 좋을지도 모릅니다.Johnuniq (대화) 03:03, 2021년 4월 1일 (UTC)응답[응답]

Johnuniq:두 가지 현안이 있습니다.하나는 다른 기능을 원하는지 여부입니다.현재의 사용방법은 변경으로 충분할 것 같습니다만, 특별히 안전을 원한다면 기능을 분리할 수 있습니다.다른 하나는 엄밀한 해석과 느슨한 해석에 관한 문제입니다.모듈:IPAddress는 매우 엄격하지만 모듈:IP 는, 무효인 많은 주소를 받아들입니다(일부 전제 조건에 근거해 해석할 수 있는 경우라도).Module에서 좀 더 엄격한 해석을 제안하는 것을 고려했습니다.IP(같은 주소에서 2개의 제로 압축(::)을 수신하지 않는 경우 등).하지만 그 길을 따라가면 절대 안 될 것 같아.마리오곰 (대화) 2021년 5월 31일 (UTC)응답[응답]

내가 마지막으로 말한 지 두 달이 지났는데 이게 다 무슨 일인지 기억하기엔 너무 길다.모듈을 편집했습니다.모듈변경 내용을 포함하는 IPAddress:스타일과 관련된 IPAddress/샌드박스 및 글로벌 기능 제거.그렇게 하면 비교가 쉬워집니다.
isIpOrRange를 사용하여 지정된 텍스트가 있는지 여부를 판단할 수 있습니다(모듈 체크가 너무 관대할 수 있습니다).IP)는 유효한 IP 또는 범위입니다.그리고, 만약 그 안에/범위입니다. 만약 그 범위 내에:IPv6 입니다.Johnuniq (대화) 5:09, 2021년 6월 1일 (UTC)응답[응답]

2022년 2월 3일 보호된 편집 요청

p.isIpOrRange에서는 현재 프레임이 필요하며 다른 모듈(첫 번째 인수가 체크하는 문자열로 포함되지 않을 수 있음)이 특정 문자열이 IP인지 범위인지를 체크할 수 없습니다.46행에서 59행으로 변경해 주세요.

기능. p._isIpOrRange(s)  현지의 모뎀 = 요구하다('모듈:IP')  현지의 성공., 아이피 = pcall(모뎀.IP 주소.신규, s)  한다면 성공. 그리고나서   돌아가다 'ip'  끝.  성공., 아이피 = pcall(모뎀.서브넷.신규, s)  한다면 성공. 그리고나서   돌아가다 '범위'  끝.  돌아가다 '' 끝.  기능. p.isIpOrRange()  -- {{#parames:}IPAddress isIpOrRange x} → 'ip'(IPv4/IPv6) 또는 'range'(CIDR IPv4/IPv6) 또는 ''(표준)     돌아가다 p._isIpOrRange(입력()) 끝. 

Chlod (say hi!) 17:43, 2022년 2월 3일 (UTC)응답[응답]

이거 맛있겠다, 고마워.모듈을 업데이트했습니다.상기의 약간 조정된 버전의 IPAddress/sandbox(모듈에 이미 있는 것에 맞게 약간의 순서를 변경했을 뿐)로, 잠시 후에 최종 체크를 실시합니다.Johnuniq (대화) 22:47, 2022년 2월 3일 (UTC)응답[응답]
완료. Johnuniq (대화) 1:01, 2022년 2월 4일 (UTC)응답[응답]
정말 감사합니다!Face-smile.svgChlod (say hi!) 09:53, 2022년 2월 4일 (UTC)응답[응답]

isIpV4Range 및 isIpV6Range

새로운 기능인 'IpV4Range'와 'isIpV6Range'를 만들었습니다.이것은 템플릿에서 사용하기 위한 것입니다.반달이지만 아마도 다른 장소에서도 유용할 것이다.앞으로 며칠 동안 아무도 반대하지 않으면 샌드박스에 있는 코드를 라이브로 가져올게요.테스트 케이스가 있습니다.- 트라이얼 피어(토크) 2023년 1월 10일(UTC)응답

snadbox에는 이러한 기능이 없습니다.
당신이 설명한 기능은 다른 곳에 있는 것 같습니다.또한 _isIpOrRange()와 같은 맥락이라고 생각합니다.
만약 그렇다면, 이 기능이 추가되었을 때, 나는 내가 무엇을 말했어야 했는지 말하겠다: 나는 그것이 완전히 바보같다고 생각한다.물론 기능 자체는 아니지만 이 모듈에 포함되어 있습니다.모듈 B에 콜을 파이프하는 기능만 하는 모듈 A에 배치하는 것이 어떤 부가가치를 가져올지 상상할 수 없습니다.
A의 일부 "원어민" 함수가 이 이식된 함수를 사용하는 경우 이 방법은 타당하지만, _isIpOrRange 및 귀하가 설명한 2개의 새로운 함수는 모두 "내보내기"를 위한 것입니다.모듈의 파이프 기능만 수행합니다.IP, 그리고 내 상식으로는 그들이 그곳에 거주해야 합니다.이 "이물질"을 이곳에 심는 것의 가치는 무엇인가?
tl;dr: 이 새로운 기능을 여기보다는 모듈 IP에 배치하는 것을 고려해 주십시오.
peace. (kipod)(대화) 2023년 1월 10일 (UTC)응답
@קיפודנחשHere is a diff with the code at Module:모듈 토크에서의 IPAddress/샌드박스 및 테스트 케이스:IPAddress/테스트 케이스
원칙적으로 저는 모듈에 다음을 포함시키는 것을 반대하지 않습니다.IP 대신, 2018 TfD가 가장 좋다고 생각한 두 개의 개별 모듈을 사용하는 경우, 모듈보다 이 모듈이 더 적합하다고 생각합니다.IP는 템플릿에서 사용하기 쉬운 반면 IP는 모듈에서의 사용을 주로 목적으로 하는 기능을 가지고 있는 것 같습니다.--Trialpears (talk) 20:22, 2023년 1월 10일 (UTC)응답
고마워요 아까 어떻게 놓쳤는지 모르겠어요몇 가지 핑계는 있지만, 여기 있는 누구도 관심을 가질 것 같지 않아요.
이 기능들은 올바른 위치에 있는 것 같습니다.이 기능은 이 모듈의 기능을 사용하고 있으며, 코드를 읽기 전에 작성된 이전 추정과는 달리 여기에 속합니다.감사해요.
btw, 이러한 함수의 추가는 (적극적으로) _isIpOrRange()를 여기에 포함하는 것을 정당화합니다.
모듈 자체에 샌드박스를 병합하기 전에 테스트 케이스를 플러스 및 마이너스 모두 추가하는 것이 좋습니다.
peace. (kipod)(대화) 00:10, 2023년 1월 11일 (UTC)응답[응답]