Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Probe a host through a given ip from the input list

Cerrado
#2,667 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 3 días

@mazzz3r ya está trabajando en esto.

Desde el 11/10/2026.

  • #2668 de @mazzz3r — abierto

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
go
Área
cli, networking

Línea de trabajo

The issue names -pa, the fastdialer.IP context value, favicon requests, ztls handshakes, and -maxhr, but does not identify source files or tests. Start by tracing how -pa passes IPs into the dialer and how redirects and auxiliary requests use that context; the issue says the implementation is in #2668 and depends on projectdiscovery/fastdialer#580. Done means a given IP is used while hostname-based Host and SNI are preserved, with the listed redirect, IPv6, favicon, ztls, and per-IP error cases handled.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Type: Enhancement
Please describe your feature request:

An input line that gives the ip to probe a target through, like curl --resolve: the connection goes to the ip, and the hostname stays in the Host header and SNI. The JSON line nuclei would use for the same thing (https://github.com/orgs/projectdiscovery/discussions/7862) fits, so one list could feed both tools:

{"target": "https://app.example.com", "ip": "192.0.2.10"}
{"target": "https://app.example.com", "ip": "192.0.2.11"}
Describe the use case of this feature:

Probing a vhost on a given server, an origin behind a CDN, or one host on each of its servers. The vhost,ip input form builds the URL from the ip and sends the vhost only as the Host header, so there is no SNI, and url and host report the ip. -pa probes the ips DNS returns, not given ones, and the way it passes each ip doesn't reach them correctly. With app.test resolving to 127.0.0.1 and 127.0.0.2, a server on each whose title is its address, and redir.test redirecting to other.test, which resolves to 127.0.0.3 (dev at c9148f0):

$ echo http://app.test:18080 | httpx -pa -title -ip -silent
http://app.test:18080 [srv=127.0.0.2 host=app.test:18080] [127.0.0.1]
http://app.test:18080 [srv=127.0.0.2 host=app.test:18080] [127.0.0.2]

$ echo http://redir.test:18201 | httpx -pa -fr -title -ip -sc -silent
http://redir.test:18201 [302,200] [srv=127.0.0.1 host=other.test:18202] [127.0.0.1]
  • -pa passes each ip in the fastdialer.IP context value, and fastdialer serves the second ip from the dialer cached for the first one (projectdiscovery/fastdialer#579, PR projectdiscovery/fastdialer#580).
  • That value pins every dial made for the request, so a redirect to another host followed with -fr goes to the probed ip.
  • IPv6 ips are passed in brackets, which fastdialer doesn't accept as an ip, so those probes fail with no ips provided in dialWrap.
  • The favicon request and the ztls handshake are made with context.Background(), so they drop the ip and reach the host through DNS, and -maxhr counts errors per host:port, so errors on one ip skip the other ips of the host.

Implemented in #2691, which replaces #2668. The fastdialer change it needs (projectdiscovery/fastdialer#580) is released in v0.6.0, which dev already requires.

Lenguaje dominante
Go
Estrellas
10.6k
Forks
1.1k
Merge medio
2 d 13 h
PR fusionados (30 d)
16

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de projectdiscovery/httpx

Todos los issues de projectdiscovery/httpx

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.