Add ProxyInputStream.unwrap()
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 6291db6..fb3ee4a 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -129,6 +129,7 @@
       <action dev="ggregory" type="add"                due-to="Gary Gregory">Add ChecksumInputStream and test #548.</action>
       <action dev="ggregory" type="add"                due-to="Gary Gregory">Add AbstractStreamBuilder.getReader().</action>
       <action dev="ggregory" type="add"                due-to="Gary Gregory">Add Maven property project.build.outputTimestamp for build reproducibility.</action>
+      <action dev="ggregory" type="add"                due-to="Gary Gregory">Add ProxyInputStream.unwrap().</action>
       <!--  UPDATE -->
       <action dev="ggregory" type="update"             due-to="Gary Gregory">Bump commons.bytebuddy.version from 1.14.10 to 1.14.11 #534.</action>
       <action dev="ggregory" type="update"             due-to="Gary Gregory">Bump org.apache.commons:commons-parent from 65 to 66.</action>
diff --git a/src/main/java/org/apache/commons/io/input/ProxyInputStream.java b/src/main/java/org/apache/commons/io/input/ProxyInputStream.java
index d4457d2..872c291 100644
--- a/src/main/java/org/apache/commons/io/input/ProxyInputStream.java
+++ b/src/main/java/org/apache/commons/io/input/ProxyInputStream.java
@@ -252,4 +252,15 @@
         }
     }
 
+    /**
+     * Unwraps this instance by returning the underlying InputStream.
+     * <p>
+     * Use with caution; useful to query the underlying InputStream.
+     * </p>
+     * @return the underlying InputStream.
+     * @since 2.16.0
+     */
+    public InputStream unwrap() {
+        return in;
+    }
 }
diff --git a/src/test/java/org/apache/commons/io/input/ProxyInputStreamTest.java b/src/test/java/org/apache/commons/io/input/ProxyInputStreamTest.java
index d14833b..c8e73d7 100644
--- a/src/test/java/org/apache/commons/io/input/ProxyInputStreamTest.java
+++ b/src/test/java/org/apache/commons/io/input/ProxyInputStreamTest.java
@@ -19,6 +19,7 @@
 
 import static org.junit.jupiter.api.Assertions.assertArrayEquals;
 import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertSame;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
@@ -147,6 +148,7 @@
     public void testReadEof() throws Exception {
         final ByteArrayInputStream proxy = new ByteArrayInputStream(new byte[2]);
         try (ProxyInputStream inputStream = new ProxyInputStreamFixture(proxy)) {
+            assertSame(proxy, inputStream.unwrap());
             int found = inputStream.read();
             assertEquals(0, found);
             found = inputStream.read();