Программисты JAVA общаются здесь
Anonymous
Захватывает все доменные имена в свойстве subjectAlternativeName.
Сообщение
Anonymous » 10 янв 2026, 19:52
Я пытаюсь извлечь определенную часть текста, но безуспешно, несмотря на то, что протестировал несколько шаблонов и просмотрел похожие примеры. После недолгих усилий я решил, что пришло время обратиться за помощью. Я работаю на Java и хочу захватить все DNS-имена, перечисленные в блоке subjectAlternativeName.
Необработанный текст:
Код: Выделить всё
[
Version: V3
Subject: CN=*.google.com
Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11
Key: Sun EC public key, 256 bits
public x coord: 109404759859797539557582869776851064193525149534433779190116190416377478114013
public y coord: 59834028993710182810726130457827642156704500550808608899515084482806544584532
parameters: secp256r1 [NIST P-256,X9.62 prime256v1] (1.2.840.10045.3.1.7)
Validity: [From: Mon Oct 27 09:33:43 CET 2025,
To: Mon Jan 19 09:33:42 CET 2026]
Issuer: CN=WR2, O=Google Trust Services, C=US
SerialNumber: [ 9d9ed0e1 cc0ecc84 0a042e3c 2f9ed571]
Certificate Extensions: 10
[1]: ObjectId: 1.3.6.1.4.1.11129.2.4.2 Criticality=false
Extension unknown: DER encoded OCTET string =
0000: 04 81 F4 04 81 F1 00 EF 00 76 00 96 97 64 BF 55 .........v...d.U
0010: 58 97 AD F7 43 87 68 37 08 42 77 E9 F0 3A D5 F6 X...C.h7.Bw..:..
0020: A4 F3 36 6E 46 A4 3F 0F CA A9 C6 00 00 01 9A 25 ..6nF.?........%
0030: 04 3D 33 00 00 04 03 00 47 30 45 02 21 00 C6 F0 .=3.....G0E.!...
0040: 6C EF D3 FA 6B 61 0F 8A C7 09 BA 20 A9 EB E9 3A l...ka..... ...:
0050: 6E EB 6B CF 2A 86 C0 80 A8 F8 B7 1F 18 1D 02 20 n.k.*..........
0060: 2A 4A 73 19 46 EB BD A9 04 04 3A 7F 9E 75 ED A9 *Js.F.....:..u..
0070: E5 BC B3 3A FE A3 D0 E6 AA 48 C5 3A 94 3A 97 E5 ...:.....H.:.:..
0080: 00 75 00 19 86 D4 C7 28 AA 6F FE BA 03 6F 78 2A .u.....(.o...ox*
0090: 4D 01 91 AA CE 2D 72 31 0F AE CE 5D 70 41 2D 25 M....-r1...]pA-%
00A0: 4C C7 D4 00 00 01 9A 25 04 3C D4 00 00 04 03 00 L......%.7$.!..49
0010: 6D 42 B2 30 mB.0
]
]
[4]: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
CA:false
PathLen: undefined
]
[5]: ObjectId: 2.5.29.31 Criticality=false
CRLDistributionPoints [
[DistributionPoint:
[URIName: http://c.pki.goog/wr2/GSyT1N4PBrg.crl]
]]
[6]: ObjectId: 2.5.29.32 Criticality=false
CertificatePolicies [
[CertificatePolicyId: [2.23.140.1.2.1]
[] ]
]
[7]: ObjectId: 2.5.29.37 Criticality=false
ExtendedKeyUsages [
serverAuth
]
[8]: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
DigitalSignature
]
[9]: ObjectId: 2.5.29.17 Criticality=false
SubjectAlternativeName [
DNSName: *.google.com
DNSName: *.appengine.google.com
DNSName: *.bdn.dev
DNSName: *.origin-test.bdn.dev
DNSName: *.cloud.google.com
DNSName: *.crowdsource.google.com
DNSName: *.datacompute.google.com
DNSName: *.google.ca
DNSName: *.google.cl
DNSName: *.google.co.in
DNSName: *.google.co.jp
DNSName: *.google.co.uk
DNSName: *.google.com.ar
DNSName: *.google.com.au
DNSName: *.google.com.br
DNSName: *.google.com.co
DNSName: *.google.com.mx
DNSName: *.google.com.tr
DNSName: *.google.com.vn
DNSName: *.google.de
DNSName: *.google.es
DNSName: *.google.fr
DNSName: *.google.hu
DNSName: *.google.it
DNSName: *.google.nl
DNSName: *.google.pl
DNSName: *.google.pt
DNSName: *.googleapis.cn
DNSName: *.googlevideo.com
DNSName: *.gstatic.cn
DNSName: *.gstatic-cn.com
DNSName: googlecnapps.cn
DNSName: *.googlecnapps.cn
DNSName: googleapps-cn.com
DNSName: *.googleapps-cn.com
DNSName: gkecnapps.cn
DNSName: *.gkecnapps.cn
DNSName: googledownloads.cn
DNSName: *.googledownloads.cn
DNSName: recaptcha.net.cn
DNSName: *.recaptcha.net.cn
DNSName: recaptcha-cn.net
DNSName: *.recaptcha-cn.net
DNSName: widevine.cn
DNSName: *.widevine.cn
DNSName: ampproject.org.cn
DNSName: *.ampproject.org.cn
DNSName: ampproject.net.cn
DNSName: *.ampproject.net.cn
DNSName: google-analytics-cn.com
DNSName: *.google-analytics-cn.com
DNSName: googleadservices-cn.com
DNSName: *.googleadservices-cn.com
DNSName: googlevads-cn.com
DNSName: *.googlevads-cn.com
DNSName: googleapis-cn.com
DNSName: *.googleapis-cn.com
DNSName: googleoptimize-cn.com
DNSName: *.googleoptimize-cn.com
DNSName: doubleclick-cn.net
DNSName: *.doubleclick-cn.net
DNSName: *.fls.doubleclick-cn.net
DNSName: *.g.doubleclick-cn.net
DNSName: doubleclick.cn
DNSName: *.doubleclick.cn
DNSName: *.fls.doubleclick.cn
DNSName: *.g.doubleclick.cn
DNSName: dartsearch-cn.net
DNSName: *.dartsearch-cn.net
DNSName: googletraveladservices-cn.com
DNSName: *.googletraveladservices-cn.com
DNSName: googletagservices-cn.com
DNSName: *.googletagservices-cn.com
DNSName: googletagmanager-cn.com
DNSName: *.googletagmanager-cn.com
DNSName: googlesyndication-cn.com
DNSName: *.googlesyndication-cn.com
DNSName: *.safeframe.googlesyndication-cn.com
DNSName: app-measurement-cn.com
DNSName: *.app-measurement-cn.com
DNSName: gvt1-cn.com
DNSName: *.gvt1-cn.com
DNSName: gvt2-cn.com
DNSName: *.gvt2-cn.com
DNSName: 2mdn-cn.net
DNSName: *.2mdn-cn.net
DNSName: googleflights-cn.net
DNSName: *.googleflights-cn.net
DNSName: admob-cn.com
DNSName: *.admob-cn.com
DNSName: *.gemini.cloud.google.com
DNSName: googlesandbox-cn.com
DNSName: *.googlesandbox-cn.com
DNSName: *.safenup.googlesandbox-cn.com
DNSName: *.gstatic.com
DNSName: *.metric.gstatic.com
DNSName: *.gvt1.com
DNSName: *.gcpcdn.gvt1.com
DNSName: *.gvt2.com
DNSName: *.gcp.gvt2.com
DNSName: *.url.google.com
DNSName: *.youtube-nocookie.com
DNSName: *.ytimg.com
DNSName: ai.android
DNSName: android.com
DNSName: *.android.com
DNSName: *.flash.android.com
DNSName: g.cn
DNSName: *.g.cn
DNSName: g.co
DNSName: *.g.co
DNSName: .
DNSName: www..
DNSName: google-analytics.com
DNSName: *.google-analytics.com
DNSName: google.com
DNSName: googlecommerce.com
DNSName: *.googlecommerce.com
DNSName: ggpht.cn
DNSName: *.ggpht.cn
DNSName: urchin.com
DNSName: *.urchin.com
DNSName: youtu.be
DNSName: youtube.com
DNSName: *.youtube.com
DNSName: music.youtube.com
DNSName: *.music.youtube.com
DNSName: youtubeeducation.com
DNSName: *.youtubeeducation.com
DNSName: youtubekids.com
DNSName: *.youtubekids.com
DNSName: yt.be
DNSName: *.yt.be
DNSName: android.clients.google.com
DNSName: *.android.google.cn
DNSName: *.chrome.google.cn
DNSName: *.developers.google.cn
DNSName: *.aistudio.google.com
]
[10]: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 37 07 29 A3 52 3A AE 2E A7 26 05 0F 43 26 FA F1 7.).R:...&..C&..
0010: 71 3E 0A 04 q>..
]
]
]
На данный момент у меня есть следующее регулярное выражение:
Код: Выделить всё
(?s)^SubjectAlternativeName\h+\[\R\s*?DNSName:\h+(\S+)
Однако это фиксирует только первую запись в списке — *.google.com. Я хотел бы получить все DNS-имена. Есть идеи, возможно ли это?
Подробнее здесь:
https://stackoverflow.com/questions/798 ... nativename
1768063931
Anonymous
Я пытаюсь извлечь определенную часть текста, но безуспешно, несмотря на то, что протестировал несколько шаблонов и просмотрел похожие примеры. После недолгих усилий я решил, что пришло время обратиться за помощью. Я работаю на Java и хочу захватить все DNS-имена, перечисленные в блоке subjectAlternativeName. Необработанный текст: [code][ Version: V3 Subject: CN=*.google.com Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11 Key: Sun EC public key, 256 bits public x coord: 109404759859797539557582869776851064193525149534433779190116190416377478114013 public y coord: 59834028993710182810726130457827642156704500550808608899515084482806544584532 parameters: secp256r1 [NIST P-256,X9.62 prime256v1] (1.2.840.10045.3.1.7) Validity: [From: Mon Oct 27 09:33:43 CET 2025, To: Mon Jan 19 09:33:42 CET 2026] Issuer: CN=WR2, O=Google Trust Services, C=US SerialNumber: [ 9d9ed0e1 cc0ecc84 0a042e3c 2f9ed571] Certificate Extensions: 10 [1]: ObjectId: 1.3.6.1.4.1.11129.2.4.2 Criticality=false Extension unknown: DER encoded OCTET string = 0000: 04 81 F4 04 81 F1 00 EF 00 76 00 96 97 64 BF 55 .........v...d.U 0010: 58 97 AD F7 43 87 68 37 08 42 77 E9 F0 3A D5 F6 X...C.h7.Bw..:.. 0020: A4 F3 36 6E 46 A4 3F 0F CA A9 C6 00 00 01 9A 25 ..6nF.?........% 0030: 04 3D 33 00 00 04 03 00 47 30 45 02 21 00 C6 F0 .=3.....G0E.!... 0040: 6C EF D3 FA 6B 61 0F 8A C7 09 BA 20 A9 EB E9 3A l...ka..... ...: 0050: 6E EB 6B CF 2A 86 C0 80 A8 F8 B7 1F 18 1D 02 20 n.k.*.......... 0060: 2A 4A 73 19 46 EB BD A9 04 04 3A 7F 9E 75 ED A9 *Js.F.....:..u.. 0070: E5 BC B3 3A FE A3 D0 E6 AA 48 C5 3A 94 3A 97 E5 ...:.....H.:.:.. 0080: 00 75 00 19 86 D4 C7 28 AA 6F FE BA 03 6F 78 2A .u.....(.o...ox* 0090: 4D 01 91 AA CE 2D 72 31 0F AE CE 5D 70 41 2D 25 M....-r1...]pA-% 00A0: 4C C7 D4 00 00 01 9A 25 04 3C D4 00 00 04 03 00 L......%.7$.!..49 0010: 6D 42 B2 30 mB.0 ] ] [4]: ObjectId: 2.5.29.19 Criticality=true BasicConstraints:[ CA:false PathLen: undefined ] [5]: ObjectId: 2.5.29.31 Criticality=false CRLDistributionPoints [ [DistributionPoint: [URIName: http://c.pki.goog/wr2/GSyT1N4PBrg.crl] ]] [6]: ObjectId: 2.5.29.32 Criticality=false CertificatePolicies [ [CertificatePolicyId: [2.23.140.1.2.1] [] ] ] [7]: ObjectId: 2.5.29.37 Criticality=false ExtendedKeyUsages [ serverAuth ] [8]: ObjectId: 2.5.29.15 Criticality=true KeyUsage [ DigitalSignature ] [9]: ObjectId: 2.5.29.17 Criticality=false SubjectAlternativeName [ DNSName: *.google.com DNSName: *.appengine.google.com DNSName: *.bdn.dev DNSName: *.origin-test.bdn.dev DNSName: *.cloud.google.com DNSName: *.crowdsource.google.com DNSName: *.datacompute.google.com DNSName: *.google.ca DNSName: *.google.cl DNSName: *.google.co.in DNSName: *.google.co.jp DNSName: *.google.co.uk DNSName: *.google.com.ar DNSName: *.google.com.au DNSName: *.google.com.br DNSName: *.google.com.co DNSName: *.google.com.mx DNSName: *.google.com.tr DNSName: *.google.com.vn DNSName: *.google.de DNSName: *.google.es DNSName: *.google.fr DNSName: *.google.hu DNSName: *.google.it DNSName: *.google.nl DNSName: *.google.pl DNSName: *.google.pt DNSName: *.googleapis.cn DNSName: *.googlevideo.com DNSName: *.gstatic.cn DNSName: *.gstatic-cn.com DNSName: googlecnapps.cn DNSName: *.googlecnapps.cn DNSName: googleapps-cn.com DNSName: *.googleapps-cn.com DNSName: gkecnapps.cn DNSName: *.gkecnapps.cn DNSName: googledownloads.cn DNSName: *.googledownloads.cn DNSName: recaptcha.net.cn DNSName: *.recaptcha.net.cn DNSName: recaptcha-cn.net DNSName: *.recaptcha-cn.net DNSName: widevine.cn DNSName: *.widevine.cn DNSName: ampproject.org.cn DNSName: *.ampproject.org.cn DNSName: ampproject.net.cn DNSName: *.ampproject.net.cn DNSName: google-analytics-cn.com DNSName: *.google-analytics-cn.com DNSName: googleadservices-cn.com DNSName: *.googleadservices-cn.com DNSName: googlevads-cn.com DNSName: *.googlevads-cn.com DNSName: googleapis-cn.com DNSName: *.googleapis-cn.com DNSName: googleoptimize-cn.com DNSName: *.googleoptimize-cn.com DNSName: doubleclick-cn.net DNSName: *.doubleclick-cn.net DNSName: *.fls.doubleclick-cn.net DNSName: *.g.doubleclick-cn.net DNSName: doubleclick.cn DNSName: *.doubleclick.cn DNSName: *.fls.doubleclick.cn DNSName: *.g.doubleclick.cn DNSName: dartsearch-cn.net DNSName: *.dartsearch-cn.net DNSName: googletraveladservices-cn.com DNSName: *.googletraveladservices-cn.com DNSName: googletagservices-cn.com DNSName: *.googletagservices-cn.com DNSName: googletagmanager-cn.com DNSName: *.googletagmanager-cn.com DNSName: googlesyndication-cn.com DNSName: *.googlesyndication-cn.com DNSName: *.safeframe.googlesyndication-cn.com DNSName: app-measurement-cn.com DNSName: *.app-measurement-cn.com DNSName: gvt1-cn.com DNSName: *.gvt1-cn.com DNSName: gvt2-cn.com DNSName: *.gvt2-cn.com DNSName: 2mdn-cn.net DNSName: *.2mdn-cn.net DNSName: googleflights-cn.net DNSName: *.googleflights-cn.net DNSName: admob-cn.com DNSName: *.admob-cn.com DNSName: *.gemini.cloud.google.com DNSName: googlesandbox-cn.com DNSName: *.googlesandbox-cn.com DNSName: *.safenup.googlesandbox-cn.com DNSName: *.gstatic.com DNSName: *.metric.gstatic.com DNSName: *.gvt1.com DNSName: *.gcpcdn.gvt1.com DNSName: *.gvt2.com DNSName: *.gcp.gvt2.com DNSName: *.url.google.com DNSName: *.youtube-nocookie.com DNSName: *.ytimg.com DNSName: ai.android DNSName: android.com DNSName: *.android.com DNSName: *.flash.android.com DNSName: g.cn DNSName: *.g.cn DNSName: g.co DNSName: *.g.co DNSName: . DNSName: www.. DNSName: google-analytics.com DNSName: *.google-analytics.com DNSName: google.com DNSName: googlecommerce.com DNSName: *.googlecommerce.com DNSName: ggpht.cn DNSName: *.ggpht.cn DNSName: urchin.com DNSName: *.urchin.com DNSName: youtu.be DNSName: youtube.com DNSName: *.youtube.com DNSName: music.youtube.com DNSName: *.music.youtube.com DNSName: youtubeeducation.com DNSName: *.youtubeeducation.com DNSName: youtubekids.com DNSName: *.youtubekids.com DNSName: yt.be DNSName: *.yt.be DNSName: android.clients.google.com DNSName: *.android.google.cn DNSName: *.chrome.google.cn DNSName: *.developers.google.cn DNSName: *.aistudio.google.com ] [10]: ObjectId: 2.5.29.14 Criticality=false SubjectKeyIdentifier [ KeyIdentifier [ 0000: 37 07 29 A3 52 3A AE 2E A7 26 05 0F 43 26 FA F1 7.).R:...&..C&.. 0010: 71 3E 0A 04 q>.. ] ] ] [/code] На данный момент у меня есть следующее регулярное выражение: [code](?s)^SubjectAlternativeName\h+\[\R\s*?DNSName:\h+(\S+) [/code] Однако это фиксирует только первую запись в списке — *.google.com. Я хотел бы получить все DNS-имена. Есть идеи, возможно ли это? Подробнее здесь: [url]https://stackoverflow.com/questions/79840467/captures-all-domain-names-within-a-property-subjectalternativename[/url]